在R中创建时间序列

时间:2018-08-30 13:49:01

标签: r csv time-series

我有一个包含以下数据的CSV文件-

  

日期,组,整数值

数据中包含的20个组的日期从2013年1月1日到2015年10月31日。

我想为20个不同的组创建一个时间序列。但是日期不是连续的,并且有零星的间隔,因此-

group4series <- ts(group4, frequency = 365.25, start = c(2013,1,1))

从编程的角度来看是可行的,但由于数据差异而不能正确使用。

如何使用数据的“日期”列而不是通常的“ ts()”函数的“频率”参数来创建时间序列?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用zoo::zoo代替ts

由于您不提供示例数据,因此让我们生成每日数据,并删除几天以引入“空白”。

set.seed(2018)
dates <- seq(as.Date("2015/12/01"), as.Date("2016/07/01"), by = "1 day")
dates <- dates[sample(length(dates), 100)]

我们构造了一个示例data.frame

df <- data.frame(
    dates = dates,
    val = cumsum(runif(length(dates))))

要将df转换为zoo时间序列,可以执行以下操作

library(zoo)
ts <- with(df, zoo(val, dates))

让我们绘制时间序列

plot.zoo(ts)

enter image description here