【问题标题】:How to modify a variable conditioned on max value of other variable如何修改以其他变量的最大值为条件的变量
【发布时间】:2018-04-06 10:02:52
【问题描述】:

我有一个长格式数据集:ID、时变变量、时间和结果 (y)。

由于时间不同,结果值不同,受试者的行数不同,0,1或2。但我只需要保留与最后一个时间点对应的结果值,并将所有其他结果行替换为0。

我不知道如何 gen 一个新变量 = 结果仅用于 ID 的 max(time)

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

【问题讨论】:

  • 在 Stata 上下文中,行是 observations

标签: stata panel-data


【解决方案1】:

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

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

  2. 只保留最后一个。

他们又来了:

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

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

【讨论】:

  • 非常感谢!确实我的问题并不清楚,但实际上这两个答案都有帮助!我打算解决 1.Replaceing results values before last for each panel with 0. 并且效果很好!
猜你喜欢
  • 2016-04-20
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多