楼主: 甲基橙crads
1550 3

求助大神,如何把一个by组的第X项数据挑出来 [推广有奖]

  • 0关注
  • 3粉丝

已卖:1461份资源

博士生

23%

还不是VIP/贵宾

-

威望
0
论坛币
5899 个
通用积分
16.4568
学术水平
4 点
热心指数
11 点
信用等级
0 点
经验
3016 点
帖子
101
精华
0
在线时间
315 小时
注册时间
2016-2-23
最后登录
2023-2-14

楼主
甲基橙crads 发表于 2016-3-24 20:13:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
以下的代码表示取出每一个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;


二维码

扫码加我 拉你入群

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

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

关键词:求助大神 SASHELP output First outpu 如何

回帖推荐

分析哥 发表于2楼  查看完整内容

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-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;

藤椅
甲基橙crads 发表于 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 这种情况时有发生,目前还没有找到原因。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 04:00