使用r的多列滞后

时间:2017-05-30 12:37:48

标签: r lag

我有一个像这样的数据框

    MSFT     AAPL     GOOGL
1 21.11067 4.975767  94.04000
2 20.91273 5.663524  97.50684
3 20.05333 5.681336  90.57909

想要创建一个文件,其中包含先前数据的一个延迟,例如

   MSFT     AAPL     GOOGL
1 20.91273 5.663524  97.50684
2 20.05333 5.681336  90.57909
3 20.09447 5.239416  99.60738

尝试使用此代码解决问题

Lagcolmean <- lapply(names(colmean), function(x){lag(colmean[[x]],k=1)
})

但它不起作用。你能帮我这方面吗?

1 个答案:

答案 0 :(得分:1)

1)索引 lag通常与时间序列一起使用,例如"ts""zoo""xts"个对象。对于数据框,只需删除第一行:

DF[-1, ]

2)rollapplyr 如果您想在问题代码中使用rollapply,请尝试以下操作:

rollapplyr(DF, 2, function(x) x[2])

或等效地:

rollapplyr(DF, 2, "[", 2)

3)dplyr 或者,dplyr包定义了leadlag,它们可以处理数据框:

library(dplyr)
DF %>% mutate_all(lead)