要使用R中的dplyr
包进行编码的财务模型,我需要参考lag
ged和lead
变量值,但我似乎无法获取代码lag
函数按照记录的方式工作。
> library(dplyr)
> x <- seq(100,500,100)
> x
[1] 100 200 300 400 500
> lead(x,1)
[1] 200 300 400 500 NA
> lag(x,1)
Error in lag(x, 1) : unused argument (1)
>
我期待lag(x,1)
导致:NA 100 200 300 400
。
有什么建议吗?谢谢。
答案 0 :(得分:0)
lag
对于R来说是一个奇怪的函数。它只能按预期的方式使用时间序列对象。例如:
cbind(x = ts(1:10), y = lag(1:10, -1))
给你:
x y
1 NA
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
NA 10
如果你想要一个快速而肮脏的功能来做你想要的,我会用它:
lag_n <- function(x, n) {c(rep(NA, n), x)[1:length(x)])}
在你的情况下,它给出:
lag_n(seq(100,500,100),1)
[1] NA 100 200 300 400
编辑:哎呀。这是在谈论stats::lag
。我用dplyr::lag
得到了预期的结果。虽然我将把它放在这里以备将来使用。