R 数据帧中的Zoo滞后差异
我想把滞后差异的结果放回我的数据框中。这意味着对于不同的滞后,我将拥有领先的NAs 我正在使用:R 数据帧中的Zoo滞后差异,r,R,我想把滞后差异的结果放回我的数据框中。这意味着对于不同的滞后,我将拥有领先的NAs 我正在使用: new.df$lag1 <- diff(new.df$Close, lag = 1, differences = 1, arithmetic = TRUE, na.pad = TRUE) Error in `$<-.data.frame`(`*tmp*`, lag1, value = c(0.248860000000001, : replacement has 6177 rows
new.df$lag1 <- diff(new.df$Close, lag = 1, differences = 1, arithmetic = TRUE, na.pad = TRUE)
Error in `$<-.data.frame`(`*tmp*`, lag1, value = c(0.248860000000001, :
replacement has 6177 rows, data has 6178
我认为如果它说na.pad=TRUE,那么这将在第1行放置一个na,在第2行放置滞后差。事实并非如此
以下是一些样本数据:
data <- c(10,15,89,40,55,67,79)
lag1 <- diff(data, lag = 1, differences = 1, arithmetic = TRUE, na.pad = TRUE)
目标是将其放回数据帧中。。。领先的NA取决于滞后的数量
dta = c(10,15,89,40,55,67,79)
require(zoo)
apply(lag(zoo(dta), c(-1,0), na.pad = TRUE), 1L, diff)
#> apply(lag(zoo(dta), c(-1,0), na.pad = TRUE), 1L, diff)
# 1 2 3 4 5 6 7
# NA 5 74 -49 15 12 12
此外,尽量避免使用基本R类数据已经使用的名称命名对象
2018年5月10日。因此,请确保没有附加dplyr,或者显式运行stats::lag,否则我的代码将无法运行
我想我找到了罪魁祸首:github.com/tidyverse/dplyr/issues/1586
答:这是拥有大量R包的自然结果。
只需显式地使用stats::lag或dplyr::lag
在dta中使用了您上面的答案。。。错误:n必须是一个非负整数标量,而不是长度2的两倍请参见:错误:n必须是一个非负整数标量,我在家里也有同样的问题,但它在工作中起作用。。。hrm…@thistleknot我让它在Windows10上的Rx64 3.3.0/3.3.1/3.4.0/3.5.0上运行。你呢?我想我找到了罪魁祸首:回答:这是拥有大量R包的自然结果。只需显式地使用stats::lag或dplyr::lag