问题描述
当我试图在时间序列数据上使用lag()函数时,需要解释为什么会出现错误不允许使用非零长度索引的零长度向量。
>此外,在通过线程Zero-length vectors with non-zero-length index are not allowed并使用建议stats :: lag(X,1)之后,工作完全正常。要求请解释一下stats :: /如何帮助解决问题。
解决方法
该问题与其他软件包中lag
的屏蔽有关。 lag
是一项功能,可以从dplyr
之类的程序包中屏蔽,即,当我们加载dplyr
时,它会显示
library(dplyr)
#Attaching package: ‘dplyr’
#The following objects are masked from ‘package:stats’:
# filter,lag
该链接中提到的lag
需要stats::lag
而不是dplyr::lag
。因此,当我们使用不同的lag
时,行为也会改变
stats::lag(1:5,1) # // not removing the observation but create attribute
#[1] 1 2 3 4 5
#attr(,"tsp")
#[1] 0 4 1
dplyr::lag(1:5,1) # // by default removes the last and append NA
#[1] NA 1 2 3 4