作者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)
推 tew:retain group_id 0; if first.name then group_id+1; 02/23 15:37
推 west1996:因為group_id+1這個寫法就已經隱含了把group_id設為 02/23 19:45
→ west1996:retain的意思,所以就會一直存在不會被清掉了!! 02/23 19:45
→ fairwind:感謝樓上兩位!! 02/24 00:03