全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6275 5
2017-12-16
有这样一个数据集a
[td]
Obsid
1a
2a
3a
4b
5b
6c
7c
8c
9c
10d
想对id每个组内进行顺序编号,变成如下效果:
[td]

Obs

id

i

1

a1

2

a2

3

a3

4

b1

5

b2

6

c1

7

c2

8

c3

9

c4

10

d1

请问各位大神,有什么代码可以办到吗?


我尝试了用do until(last.id); i+1;,老是出现死循环。









     




二维码

扫码加我 拉你入群

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

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

全部回复
2017-12-16 15:54:35
有大神知道吗,求帮助
二维码

扫码加我 拉你入群

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

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

2017-12-16 17:45:03
用retain语句
二维码

扫码加我 拉你入群

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

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

2017-12-16 20:12:04
复制代码


二维码

扫码加我 拉你入群

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

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

2018-7-7 15:40:13
假设数据集a存储在临时逻辑库work中,则如下代码可以解决你的问题。
proc sort data=work.a;
   by id;
run;

data work.a;
   set work.a;
   by id;
   retain i;
   if first.id then i=1
   i = i + 1;
run;
二维码

扫码加我 拉你入群

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

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

2021-4-8 19:41:14
GLY4030 发表于 2018-7-7 15:40
假设数据集a存储在临时逻辑库work中,则如下代码可以解决你的问题。
proc sort data=work.a;
   by id;
有个小错误

"假设数据集a存储在临时逻辑库work中,则如下代码可以解决你的问题。
proc sort data=work.a;
   by id;
run;

data work.a;
   set work.a;
   by id;
   retain i;
   if first.id then i=0
   i = i + 1;
run;"
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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