作者fairwind (应天风)
看板Statistics
标题[程式] how to create group id
时间Thu Feb 23 14:49:37 2012
[软体程式类别]: SAS
[程式问题]: 资料处理
[软体熟悉度]: 中(3个月到1年)
[问题叙述]:
假设原始资料为:
name wave
-----------
Janny 1
Janny 2
Janny 3
Andy 1
Andy 2
Tim 1
Rose 1
Rose 2
Rose 3
Rose 4
现在想把 name 转为数值的id
希望出来的结果为
name wave group_id
---------------------
Andy 1 1
Andy 2 1
Janny 1 2
Janny 2 2
Janny 3 2
Rose 1 3
Rose 2 3
Rose 3 3
Rose 4 3
Tim 1 4
[程式范例]:
proc sort data=a out=b; by name; run;
data work.c;
set work.b;
by name;
if first.name then group_id+1;
run;
我还在试时, 这个code就有达到我要的效果, 但我不太知道为什麽
if first.name 不是只有第一笔才会有值吗?
想请教大家, 谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.86.128
※ 编辑: fairwind 来自: 140.112.86.128 (02/23 14:51)
1F:推 tew:retain group_id 0; if first.name then group_id+1; 02/23 15:37
2F:推 west1996:因为group_id+1这个写法就已经隐含了把group_id设为 02/23 19:45
3F:→ west1996:retain的意思,所以就会一直存在不会被清掉了!! 02/23 19:45
4F:→ fairwind:感谢楼上两位!! 02/24 00:03