【发布时间】:2016-11-09 19:14:40
【问题描述】:
我有一个不规则的时间序列,其中数据集中存在间隙。此外,数据被分组。我已经能够通过观察找到滞后的滞后函数(因此它们在数据集中找到先前的记录),但我想指定一个时间变量并通过匹配滞后时间来计算滞后。这个问题:R lag/lead irregular time series data 正在做类似的事情。但是,我不能使用zoo 解决方案(我有某种包不兼容,根本不能使用zoo)并且未能成功将data.table 解决方案变成足够灵活的东西以用作函数以滞后量作为输入和分组数据的容量。
测试数据:
testdf <- data.frame(group = c(1,1,1,1,1,2,2,2,2,2),
counter = c(1,2,3,5,6,7,8,9,11,12),
xval = seq(100, 1000, 100))
lagamount <- 1
输出应该是向量:NA 100 200 NA 400 NA 600 700 NA 900
这是我目前正在使用的:
library(dplyr)
testout <- group_by(testdf, group) %>%
mutate(testout = function(x) which((testdf$counter - x) == lagamount))
这给了我一个数据类型错误,即某些东西(未指定)不是向量。
有没有办法让这个建筑工作?或者,我怎么能滞后于分组变量的不规则时间序列?
【问题讨论】:
-
或许可以将相关的
zoo函数调用为zoo::needed_function(),避免加载包。 -
你也得到了这个错误,因为你正在向
mutate提供一个函数,并且它需要一个向量。 -
谢谢我应该更清楚 - zoo 不会安装在我的机器上,Rccp 依赖项存在问题。感谢错误信息的解释,我会再试一次
标签: r time-series dplyr