全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1502 3
2016-03-24
以下的代码表示取出每一个age by组的第一个观测值,如果我想取出每一个age by组的任意一个观测值,怎么办;
data m;
set sashelp.class;
run;

proc sort data=m;
by age;
quit;

data n;
set m;
by age;
if first.age=1 then output;
run;


二维码

扫码加我 拉你入群

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

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

全部回复
2016-3-24 22:59:32
proc sort data=m;
by age;
if first.age then count=1;
count=count+1;
run;
data target;
set m;
if count=x;
run;
二维码

扫码加我 拉你入群

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

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

2016-3-25 23:06:32
分析哥 发表于 2016-3-24 22:59
proc sort data=m;
by age;
if first.age then count=1;
非常感谢,这一段很有启发意义,尤其是那个count,这段还有一点点小问题,sort下面的if不能被执行,受你启发,我写了一个新的算法可以解决这个问题,但有点冗杂,尚需优化。
data m;
set sashelp.class;
run;

data a;
do id= 1 to 19;
output;
end;
run;

data aa;
merge a m;
run;

proc sort data=aa out=aaa;
by age;
run;

proc rank data=aaa out=aaaa;
var id;
ranks count;
by age;
run;

data b;
set aaaa;
if count=X then output;
run;
二维码

扫码加我 拉你入群

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

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

2016-3-28 21:26:44
first unintialized 这种情况时有发生,目前还没有找到原因。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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