看板 Statistics 關於我們 聯絡資訊
[軟體程式類別]: 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