我有一个长格式数据集:ID,时变变量,时间和结果(y)。
由于不同的时间和不同的结果值,0,1或2,受试者的行数不同。但我只需要保持结果值对应于上一个时间点,并将所有其他结果行替换为0。 / p>
我无法弄清楚如何gen
一个新的变量=结果只有最大(时间)的ID
id sbp y time
1 120 1 0
1 126 1 1
1 126 1 2
1 126 1 3
1 126 1 4
1 132 1 5
1 132 1 6
1 132 1 7
1 150 1 8
1 150 1 9
1 150 1 10
1 160 1 11
1 160 1 12
1 160 1 13
1 160 1 14
答案 0 :(得分:0)
你似乎在问完全不同的事情:
使用0替换每个面板的最后一个结果值。
只保留最后一个。
他们依次在这里:
bysort id (time) : replace y = 0 if _n < _N
by id: keep if _n == _N
如果您只想要第二个,则需要bysort id (time)
而不是by id
。