我有以下数据集。填充缺失值日期时间序列数据与插值R
name - old - new - datetime
1051 38656 38400 2016-01-24 03:22:37
1051 5888 5632 2016-01-24 04:03:28
1051 5632 38144 2016-01-24 04:34:22
1051 5120 4864 2016-01-24 03:56:33
1051 37376 37632 2016-01-25 08:08:16
.. .. .. ..
我想插数据集:
name - old - new - datetime
1051 ? ? 2016-01-24 03:20:00
1051 ? ? 2016-01-24 03:30:00
1051 ? ? 2016-01-24 03:40:00
1051 ? ? 2016-01-24 03:50:00
1051 ? ? 2016-01-24 04:00:00
1051 ? ? 2016-01-25 04:10:00
.. .. .. ..
我有复杂的数据集。所以,我想插入以获得更干净的数据集。我也试试这个:
data.frame(datetime = seq(roomsdatetime$datetime[1], roomsdatetime$datetime[nrow(roomsdatetime)], by = "10 min")) %>%
mutate(roomsdatetime, approx = na.approx(roomsdatetime$old_value))
我得到这个错误:
Error: wrong result size(3562), expected 3565 or 1
有另一种方式?
不太清楚你问什么。你是否想将数据转换为10分钟的时间间隔?如果是这种情况请参阅这里的示例http://stackoverflow.com/a/10423613/2824732 – Robert
小心线性插值! “使用线性插值将数据转换为等距观测值可能会导致大量难以量化的偏差”。参考文献:M.Scholes和J.Williams,“Estimating betaas from nonsynchronous data”,Journal of Financial Economics 5:309-327,1977。 http://www.sciencedirect.com/science/article/pii/0304405X77900411 Your aim当然不会获得等间隔的数据,但无论如何,您尝试使用插值。 –
问题中也缺少插值的类型:线性,二次方,立方体等。 smooth.spline'在控制台中通过'smooth.spline'分析3度插值。 –