全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
855 4
2021-12-14

想在数据集后面添加一列行号,可是不管把retain放在循环里面还是循环外面都是不起作用。是不是不可以直接这么写,求各路大神指点一下

subjvisitnumbern行号
001V1

20

3

1

001V2

24

3

2

001V3

18

3

3

002V1

32

2

1

002V2

30

2

2

003V1

40

1

1


data test2;
set test1;
do until(n=0);
retain sn;
n=n-1;
sn=+1;
output;
end;
put _all_;
run;

二维码

扫码加我 拉你入群

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

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

全部回复
2021-12-14 20:15:47
复制代码
二维码

扫码加我 拉你入群

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

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

2021-12-19 19:03:26
你retain 放错地方了吧?
二维码

扫码加我 拉你入群

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

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

2021-12-29 06:54:35
一般把retain放在set前面
二维码

扫码加我 拉你入群

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

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

2021-12-29 11:10:01
二楼应该是常用的解法吧,照楼主的思路,我觉得需要修改:首先按subjid visit 排序,然后更新如下:


data test2;
set test1;if fisit.subjid then retain sn 0;
do until(n=0);
retain sn;
n=n-1;
sn+1;
if n=0 then output;
end;
put _all_;
run;

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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