全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1702 5
2010-10-13
悬赏 30 个论坛币 已解决
data a;input num $11.  id $2. aa$10. ab $10. ar ac;
cards;
13404800000 a 2006-04-01 2007-04-01 800 968
13404800007 b 2006-05-01 2011-04-01 209 1164
13404800012 c 2006-12-19 2013-03-01 38 22
13404800014 c 2006-12-08 2012-08-01 11 1
13404800016 c 2006-12-30 2011-05-01 121 566
13404800020 d 2006-06-30 2010-09-01 136 478
……
;
run;
proc format;
  value fd  0-<10="<10元"
           10-<20=">=10元and<20元"

   20-<50=">=20元and<50元"

   50-<80=">=50元and<80元"

   80-<120=">=80元and<120元"

   120-<200=">=120元and<200元"

   200  <- high=">=200元";
run;
现在想得到以ar为分类变量(用format过程分组如上),id出现的个数(id取值有限,且会重复出现,无论出现多少次都按一次算)和num出现的个数(num取值不会重复,一个代表一个人)。就是一张二维表,列变量是ar.
比如说当ar在200以上这个区间里,id出现了2次(如果a出现多次按一次算),num出现了2个,不同的取值代表不同的人。
我本来是用tabulate做的,但得到的结果中id出现的次数不对,还有就是id和num的所有取值都展开了,但我需要的只是最终加总的结果。
哪位大侠指教一下,谢谢!

最佳答案

soporaeternus 查看完整内容

不知道是不是这个意思
二维码

扫码加我 拉你入群

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

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

全部回复
2010-10-13 17:32:15
复制代码
不知道是不是这个意思
二维码

扫码加我 拉你入群

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

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

2010-10-13 18:16:00
你的思路正是我想要的,有一个问题是我输出结果以后,出现了下面的结果,请问这是怎么回事啊?arpu     
>=10元and<20元 1 1
>=20元and<50元 1 1
>=20元and<50元 1 1
>=120元and<200元 2 2
>=200元 1 1
>=200元 1 1

2# soporaeternus
二维码

扫码加我 拉你入群

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

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

2010-10-13 18:21:48
原因是我写的时候忘了加calculated了,非常感谢!!! 2# soporaeternus
二维码

扫码加我 拉你入群

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

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

2010-10-13 18:26:26
再问一个问题,我不是按ar分类么,输出结果中的ar的顺序乱了,我想让他以最开始我定义的顺序显示,怎么设置一下? 2# soporaeternus
二维码

扫码加我 拉你入群

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

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

2010-10-13 21:31:22
两个类似的方法
第一个
在format的label上手工添加排序号
代码如下
复制代码
第二种方法
增加一个专门用来排序的format
生成汇总表后用data option删除掉
代码如下
复制代码
两种方法各有优劣,你看着用吧......
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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