使用r的多列滞后
lag of multiple column using r
我有一个这样的数据框
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) indexing 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)
我有一个这样的数据框
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) indexing 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)