楼主: akalius
1529 4

求助根据变量情况来进行分组 [推广有奖]

  • 10关注
  • 3粉丝

讲师

48%

还不是VIP/贵宾

-

威望
0
论坛币
4168 个
通用积分
9.1543
学术水平
4 点
热心指数
6 点
信用等级
6 点
经验
7832 点
帖子
261
精华
0
在线时间
605 小时
注册时间
2009-7-22
最后登录
2024-4-9

楼主
akalius 学生认证  发表于 2014-8-18 11:21:45 |只看作者 |坛友微信交流群|倒序 |AI写论文
20论坛币
如下,我的划分组依据是,对于每个观测  如果w , x , y ,z 都相等,则划分为一组,并有分组标识,谢谢
w x y z
a 2 3 4
a 2 3 4
a 2 3 4
b 6 9 8
b 6 9 8
c 6 9 4
d 3 6 9
f 3 6 9
沙发
wwang111 发表于 2014-8-18 11:21:46 |只看作者 |坛友微信交流群
  1. data test;
  2. input w $ x y z;
  3. combvar=cats(w,x,y,z);
  4. cards;
  5. a 2 3 4
  6. a 2 3 4
  7. a 2 3 4
  8. b 6 9 8
  9. b 6 9 8
  10. c 6 9 4
  11. d 3 6 9
  12. f 3 6 9
  13. ;

  14. proc sql;
  15. create table grp as
  16. select *, monotonic() as grp from
  17. (select distinct combvar
  18.   from test);
  19. quit;

  20. proc sql;
  21. create table wanted(drop=combvar) as
  22. select a.*, b.grp
  23. from test a left join grp b
  24. on a.combvar=b.combvar;
  25. quit;
复制代码
已有 1 人评分论坛币 热心指数 收起 理由
420948492 + 60 + 1 精彩帖子

总评分: 论坛币 + 60  热心指数 + 1   查看全部评分

使用道具

藤椅
mingfeng07 学生认证  发表于 2014-8-18 16:04:46 |只看作者 |坛友微信交流群
  1. data test;
  2. input w $ x y z;
  3. cards;
  4. a 2 3 4
  5. b 6 9 8
  6. c 6 9 4
  7. a 2 3 4
  8. d 3 6 9
  9. f 3 6 9
  10. b 6 9 8
  11. a 2 3 4
  12. ;
  13. run;
  14. proc sort data=test;by w x y z;run;
  15. data test1;
  16. set test;
  17. by w x y z;
  18. retain flag;
  19. if first.z then flag+1;
  20. run;
复制代码
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
akalius + 5 + 2 + 2 + 2 谢谢
420948492 + 60 + 1 精彩帖子

总评分: 论坛币 + 65  学术水平 + 2  热心指数 + 3  信用等级 + 2   查看全部评分

使用道具

板凳
420948492 发表于 2014-8-18 17:40:23 |只看作者 |坛友微信交流群
mingfeng07 发表于 2014-8-18 16:04
好思路,好像flag+1就暗含了retain的意思

使用道具

报纸
mingfeng07 学生认证  发表于 2014-8-18 18:08:19 |只看作者 |坛友微信交流群
420948492 发表于 2014-8-18 17:40
好思路,好像flag+1就暗含了retain的意思
嗯,加retain多此一举了。

使用道具

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

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

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

GMT+8, 2024-4-26 20:44