【发布时间】:2014-05-12 08:11:57
【问题描述】:
我有一个类似的数据框
ID_CASE Month
CS00000026A 201301
CS00000026A 201302
CS00000026A 201303
CS00000026A 201304
CS00000026A 201305
CS00000026A 201306
CS00000026A 201307
CS00000026A 201308
CS00000026A 201309
CS00000026A 201310
CS00000191C 201302
CS00000191C 201303
CS00000191C 201304
CS00000191C 201305
CS00000191C 201306
CS00000191C 201307
CS00000191C 201308
CS00000191C 201309
CS00000191C 201310
我希望最终的数据框有三个额外的列,例如
ID_CASE Month Lag_1 Lag_2 Lag_3
CS00000026A 201301 NA NA NA
CS00000026A 201302 201301 NA NA
CS00000026A 201303 201202 201201 NA
CS00000026A 201304 201203 201202 201201
CS00000026A 201305 201204 201203 201202
CS00000026A 201306 201305 201304 201303
CS00000026A 201307 201306 201305 201304
CS00000026A 201308 201307 201306 201305
CS00000026A 201309 201308 201307 201306
CS00000026A 201310 201309 201308 201307
CS00000191C 201302 NA NA NA
CS00000191C 201303 201302 NA NA
CS00000191C 201304 201303 201302 NA
CS00000191C 201305 201304 201303 201302
CS00000191C 201306 201305 201304 201303
CS00000191C 201307 201306 201305 201304
CS00000191C 201308 201307 201306 201305
CS00000191C 201309 201308 201307 201306
CS00000191C 201310 201309 201308 201307
在哪里
- Lag_1 滞后 1 个月
- Lag_2 滞后 2 个月
- Lag_3 滞后 3 个月。
我使用以下代码至少得到了 Lag_1
df <- ddply(df,.(ID_CASE),transform,
Lag_1 <- c(NA,Month[-nrow(df)]))
但这并没有给我 Lag_1 所需的输出。
我也尝试过查看解决方案 Lag in R dataframe
如果我有一个 date 对象而不是当前示例中的 int 列 'Month' 怎么办?
我们将不胜感激。
【问题讨论】: