楼主: jackbt123
1382 5

[原创博文] [SAS Data Management] 计算一个数包含多少个数字“3”? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

60%

还不是VIP/贵宾

-

威望
0
论坛币
110 个
通用积分
0.3000
学术水平
2 点
热心指数
4 点
信用等级
2 点
经验
853 点
帖子
58
精华
0
在线时间
263 小时
注册时间
2008-11-28
最后登录
2017-9-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
for example,
123 包含 1 个 “3”
133 包含 2 个 “3”
333 包含 3 个 “3”
456 包含 0 个 “3”

here is my script
data test;
testnum = 123;
run;
data test;
set test;
teststring = put(testnum, 8.);
numof3 = count(compress(teststring),"3");
run;

any other solutions?
Thanks....
二维码

扫码加我 拉你入群

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

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

关键词:Management Managemen Manage Data Age example count

沙发
yugao1986 发表于 2012-1-2 13:21:53 |只看作者 |坛友微信交流群
数值型型变量自动转换为字符型变量
data _null_;
   set test;
   num_2=count(testnum,'2');
   put num_2=;
run;
三人行必有我师

使用道具

藤椅
jackbt123 发表于 2012-1-2 13:29:15 |只看作者 |坛友微信交流群
thanks

使用道具

板凳
qiao2000 发表于 2012-1-3 21:14:43 |只看作者 |坛友微信交流群
思路如下,还需要修改。
data _null_;
testnum = 33.123 ;
count = 0 ;
j = int(testnum) ;
do while (j ne 0);
        i =  mod( j , 10 ) ;
        if i = 3 then  count +1 ;
        j = int ( j / 10 ) ;
end;

j = testnum - int(testnum) ;

do while (j ne 0 ) ;
        i = int ( j * 10 ) ;
        if i = 3 then count + 1;
        j = j*10 - int( j*10) ;
       
end ;
put " count = " count ;

run ;

使用道具

报纸
jackchan2012 发表于 2012-1-4 22:21:22 |只看作者 |坛友微信交流群
data _null_;
   set test;
   num_2=count(testnum,'2');
   put num_2=;
run;
谢谢!

使用道具

地板
maidenhan 发表于 2012-1-6 08:33:00 |只看作者 |坛友微信交流群
A different solution in the following.

data test;
        format a 20. c_a $20.;
        a = 1243143134131343;
        c_a = put(a,20.);
        num_of_3 = length(c_a) - length(compress(c_a,'3'));
run;

使用道具

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

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

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

GMT+8, 2024-4-28 13:46