全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3942 7
2015-01-28
数据处理过程中碰到这样一个问题:
变量1    变量2
1            1989
1            1990
1            1991
2            1990
2            2004
2            2006
……         ……
最终要分别把变量2是1989、1990、1991的人   和   变量2是1990、2004、2006的人作为两个数据集输出,求大虾指教,谢谢?
二维码

扫码加我 拉你入群

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

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

全部回复
2015-1-28 21:49:24
data c9501m c9501f;
  set a;
  select(id);
  when('1')output c9501m;
  when('2')output c9501f;
  end;
  run;
二维码

扫码加我 拉你入群

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

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

2015-1-28 22:29:24
sushe1527 发表于 2015-1-28 21:49
data c9501m c9501f;
  set a;
  select(id);
谢谢,不过我可能没完全把我的问题描述清楚。变量1是编号,同为1的是一个人,变量2代表该人的不同三年(后面还有其他变量),可能有几种组合(比如上面提到的两种89、90、91以及90、04、06,还可能有其他组合,但都是3年的)。现在想把每一种组合都单独输出成一个数据集,比如新输出的数据集1里个体都是有89、90、91三年的数据,而新数据集2里个体都是90、04、06三年的数据,等等。
万分感谢:)
二维码

扫码加我 拉你入群

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

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

2015-1-28 22:53:08
复制代码


二维码

扫码加我 拉你入群

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

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

2015-1-29 09:31:47
楼主我看了一下,因为你的数据给的不全,我只能按照我的理解写了下面的代码,供你参考!
[url=]data test;         input var1 var2;         cards; 1 1989 1 1990 1 1991 2 1990 2 2004 2 2006 ; run; data r1 r2;         set test (where=(var2 in (1989,1990,1991)));         output r1;         set test (where=(var2 in (1990,2004,2006)));         output r2; run; proc print data=r1; run; proc print data=r2; run;[/url]
二维码

扫码加我 拉你入群

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

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

2015-1-29 09:33:41
上面的文字太乱了,不好意思,下面的为准!
复制代码
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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