※ 引述《margaret3233 (margaret)》之銘言:
: 我的資料如下
: id time x1 x2
: A1 1 0 a1
: A1 2 0 a2
: A1 3 1 a3
: A1 4 1 a4
: A1 5 1 a5
: A2 1 0 a6
: A2 2 0 a7
: A2 3 0 a8
: A2 4 0 a9
: A3 1 0 a10
: A3 2 1 a11
: A3 3 1 a12
: A3 4 1 a13
: A3 5 1 a14
: A4 1 0 a15
: A4 2 0 a16
: A4 3 1 a17
: ...
: 我想抓出 每一個id
: 在x1變項最先出現1時 x2的數值
: 若是x1沒出現則抓最後time的x2 數值
: 希望最後是
: id time x1 x2
: A1 3 1 a3
: A2 4 0 a9
: A3 2 1 a11
: A4 3 1 a17
: 目前只想到最笨的方法是先transpose
: 在用很多if來寫程式
: 請問否有其他比較簡潔的方法?
: 謝謝
data XXXX;
retain flag;
set XXXX;
by id;
if first.id then flag=0;
if x1=1 and flag=0 then
do;
flag=1;
output;
end;
if last.id and flag=0 then output;
run;
我也不知道這樣有沒有比較快
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.40.59
※ 編輯: west1996 來自: 140.109.40.59 (02/03 12:06)
舊的有錯,改了一下
※ 編輯: west1996 來自: 140.109.40.59 (02/05 09:48)