如何修改以其他变量

时间:2018-04-06 10:02:52

标签: stata panel-data

我有一个长格式数据集: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

1 个答案:

答案 0 :(得分:0)

你似乎在问完全不同的事情:

  1. 使用0替换每个面板的最后一个结果值。

  2. 只保留最后一个。

  3. 他们依次在这里:

    bysort id (time) : replace y = 0 if _n < _N 
    by id: keep if _n == _N 
    

    如果您只想要第二个,则需要bysort id (time)而不是by id