楼主: liu022
1008 2

请教几个细节问题 [推广有奖]

  • 0关注
  • 6粉丝

讲师

63%

还不是VIP/贵宾

-

威望
0
论坛币
932 个
通用积分
8.7513
学术水平
23 点
热心指数
18 点
信用等级
21 点
经验
3670 点
帖子
431
精华
1
在线时间
370 小时
注册时间
2007-5-21
最后登录
2023-1-2

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

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

      谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:stkcd STK int 大家好 怎么办 如何

沙发
chaosxiao 发表于 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;
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Imasasor + 12 + 36 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 12  论坛币 + 36  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
老师她摸我 发表于 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;
欢迎加入SAS群:144839730-蜗牛

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 02:32