全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1167 2
2012-11-17
大家好!
      小弟碰到几个细节问题,不知如何解决,请大家帮忙。
      1) 变量stkcd=1是数值型的,我想把它补齐为stkcd=000001,总共6位,如果前面不够,就用0来补足,请问应该怎么办?
      2) 是否有函数返回一个值的小数部分?而不用9.01-int(9.01)这种写法?
      3) 如何能够找到一个数的最后一位数字?例如:8.02返回2, 9.1就返回0,188返回0?

      谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-11-17 15:07:36
data a;        
input x @@;
cards;
1 2 23 99 199 1999 19999
;
run;
data b;
set a;
length y $6.;

if 0<x<10 then y=cat("00000",x);else if 0<x<100 then y=cat("0000",x);else if 0<x<1000 then y=cat("000",x);
else if 0<x<10000 then y=cat("00",x);else if 0<x<100000 then y=cat("0",x);
run;

data q;        
input x @@;
cards;
9.2 9.01 -4.15 8.02 188
;
run;
data aa;
set q;
z=x-int(x);
i=reverse(x);
u=substr(i,1,1);
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-17 16:14:13
data test1;        
input x @@;
cards;
1 23 234 4567
;
run;
data q1;
format x z6.;
set test1;
run;

data test2;        
input x @@;
format x 4.2;
cards;
9.01 8.02 9.1 188
;
run;
data q23;
set test2;
format z z2.;
z=scan(x,2,'.');
if z<0 then z=0;
else  z=scan(x,2,'.');
u=substr(z,2);
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群