我有一个像这样的数据框
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)
})
但它不起作用。你能帮我这方面吗?
答案 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包定义了lead
和lag
,它们可以处理数据框:
library(dplyr)
DF %>% mutate_all(lead)