【问题标题】:Creating time series in R在 R 中创建时间序列
【发布时间】:2019-02-05 11:56:59
【问题描述】:

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

日期、组、整数值

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

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

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

从编程的角度来看是可行的,但由于数据空白而不正确。

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

谢谢!

【问题讨论】:

  • 请通过dput发布您的数据的代表性样本。

标签: r csv time-series


【解决方案1】:

您可以使用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)

【讨论】:

  • 注意with语句可以写成:ts &lt;- read.zoo(df)
猜你喜欢
  • 1970-01-01
  • 2021-01-13
  • 2021-12-21
  • 2022-08-14
  • 1970-01-01
  • 2015-04-24
  • 2012-12-10
  • 2014-09-19
  • 2021-08-27
相关资源
最近更新 更多