请选择 进入手机版 | 继续访问电脑版
楼主: 范范思密达
3208 19

SAS如何生成某一个变量的频数变量啊 [推广有奖]

  • 6关注
  • 1粉丝

大专生

23%

还不是VIP/贵宾

-

威望
0
论坛币
19 个
通用积分
0.0001
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
275 点
帖子
34
精华
0
在线时间
41 小时
注册时间
2015-8-17
最后登录
2016-12-24

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
filehelper_1462695211305_76.png

如上图:
我想要对new_id这个变量出现相同频数的观测分别输出到不同的数据集, 大神们知道怎么实现吗
目前想到是生成一个中间变量 ,就是new_id的频数变量,然并不知怎么实现!!!
二维码

扫码加我 拉你入群

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

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

关键词:中间变量 NEW 数据集 sas 求助

想到一个笨方法:把每个observation弄成一个数据集,然后比较id,一样的id汇总到一个数据集?
已有 1 人评分论坛币 收起 理由
admin_kefu + 5 热心帮助其他会员

总评分: 论坛币 + 5   查看全部评分

使用道具

范范思密达 发表于 2016-5-9 10:23:24 来自手机 |显示全部楼层 |坛友微信交流群
麦迪他哥哥 发表于 2016-5-9 09:51
想到一个笨方法:把每个observation弄成一个数据集,然后比较id,一样的id汇总到一个数据集?
呃呃呃,没看懂

使用道具

  1. proc sql;
  2.         create table want as
  3.         select distinct new_id,count(new_id) as count from have group by new_id;
  4. quit;
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

calsunny 发表于 2016-5-9 12:05:04 |显示全部楼层 |坛友微信交流群
proc freq data=Have; table new_ID/out=freq(keep=new_ID count);run;
data want;
merge have freq;
by new_ID;
run;


已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

范范思密达 发表于 2016-5-9 15:51:58 来自手机 |显示全部楼层 |坛友微信交流群
孤单的我们 发表于 2016-5-9 10:37
啥意思

使用道具

范范思密达 发表于 2016-5-9 15:53:19 来自手机 |显示全部楼层 |坛友微信交流群
calsunny 发表于 2016-5-9 12:05
proc freq data=Have; table new_ID/out=freq(keep=new_ID count);run;
data want;
merge have freq;
我跑跑试试先

使用道具

l1i2n3i4n5g 在职认证  发表于 2016-5-9 17:11:47 |显示全部楼层 |坛友微信交流群
  1. data test;
  2.         input new_id $ 20.;
  3. cards;
  4. 哈尔滨市00001
  5. 哈尔滨市00001
  6. 哈尔滨市00001
  7. 哈尔滨市00001
  8. 哈尔滨市00002
  9. 哈尔滨市00002
  10. 哈尔滨市00002
  11. 哈尔滨市00002
  12. 哈尔滨市00003
  13. 哈尔滨市00003
  14. 哈尔滨市00003
  15. 哈尔滨市00004
  16. 哈尔滨市00004
  17. 哈尔滨市00004
  18. 哈尔滨市00005
  19. 哈尔滨市00005
  20. ;
  21. run;

  22. proc sql;
  23.         create table test1 as select distinct(new_id) as new_id2, count(new_id) as count
  24.         from test
  25.         group by new_id2;
  26.         select max(count) into : max_count
  27.         from test1;
  28. quit;
  29. %put &max_count;

  30. %macro test2;
  31. data
  32.         %do i=1 %to &max_count;
  33.                 test_&i
  34.         %end;
  35.         ;
  36.         set test1;
  37.         if count=1 then output test_1;
  38.         %do i=2 %to &max_count;
  39.                 else if  count=&i then output test_&i;
  40.         %end;
  41.         run;
  42. %mend test2;

  43. %test2
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

范范思密达 发表于 2016-5-9 18:13:06 来自手机 |显示全部楼层 |坛友微信交流群
l1i2n3i4n5g 发表于 2016-5-9 17:11
复制代码是啥意思啊::>_<::

使用道具

范范思密达 发表于 2016-5-9 18:14:09 来自手机 |显示全部楼层 |坛友微信交流群
范范思密达 发表于 2016-5-9 15:53
我跑跑试试先
哇塞,好厉害,可以的,谢谢啦

使用道具

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

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

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

GMT+8, 2024-3-29 23:02