【问题标题】:Convert a irregular time series to a regular time series将不规则时间序列转换为规则时间序列
【发布时间】:2011-04-23 07:20:59
【问题描述】:

将不规则时间序列转换为规则时间序列时遇到问题。下面是一个简化的例子:

require(zoo)
t <- as.character(c(1981,1984,1985))
d <- c(1,3,6)
dt <- data.frame(d,t)
t <- as.Date(t,"%Y")
z <- zoo(d,t)
plot(z)
ts.d <- as.ts(as.zooreg(z,freq=1)) # create a regular ts object
ts.d # regular time series

我想创建一个规则的时间序列 ts.d,看起来像这样 c(1981,NA,NA,1984,1985)。

令人惊奇的是,我第一次运行它:它工作!但是当我想再次运行它或重复它(as.ts() 行)时,它会停止工作,我会得到一个很长的时间序列:

ts.d # regular time series
Time Series:
Start = 4299 
End = 5760 
Frequency = 1 
  [1]  1 NA NA NA NA NA NA NA NA NA NA NA NA NA
 [15] NA NA NA NA NA NA NA NA 

等等

出了什么问题?

【问题讨论】:

    标签: datetime r time-series


    【解决方案1】:

    正如已经指出的那样,as.Date(as.character(t), "%Y") 不正确,因为它没有给出所需的月份和日期。如果我们想将年份转换为 "Date" 类,我们可以使用 zoo 的 as.yearmon 来做到这一点 as.Date(as.yearmon(t));但是,那么我们会遇到更进一步的问题,即不同年份有不同的天数,因此无法使用日期来表示年份。

    真的,我们一开始就不想约会。我们只想使用多年,在这种情况下,它简化为:

    > z <- zoo(c(1, 3, 6), c(1981, 1984, 1985))
    > 
    > as.ts(z)
    Time Series:
    Start = 1981 
    End = 1985 
    Frequency = 1 
    [1]  1 NA NA  3  6
    

    或者如果我们想要安全,我们可以这样做,这将强制它是年度的,即使输入的频率偶然较低:frequency(z) &lt;- 1; as.ts(z) 或者只是将原始动物园系列定义为频率为 1从头开始:

    > z <- zoo(c(1, 3, 6), c(1981, 1984, 1985), frequency = 1)
    > as.ts(z)
    Time Series:
    Start = 1981 
    End = 1985 
    Frequency = 1 
    [1]  1 NA NA  3  6
    

    在这个例子中它没有任何区别,但在这种情况下,z &lt;- zoo(c(1, 3, 6), c(1981, 1983, 1985), frequency = 1) 需要显式的 frequency 以防止它具有 0.5 的频率。

    【讨论】:

      【解决方案2】:

      这不是错误。您的时间序列中有 1,461 天跨越 4 年。我第一次运行它时它对我不起作用。 as.Date(t,"%Y") 不知道要使用哪个月/日来制作日期,所以它使用今天的月/日。这不能进行可重复的分析。试试这个:

      t <- c(1981,1984,1985)
      d <- c(1,3,6)
      z <- zoo(d,t)
      z <- merge(z,zoo(,c(1981,1982,1983,1984,1985)))
      ts.d <- as.ts(z)
      

      产量:

      > ts.d
      Time Series:
      Start = 1981 
      End = 1985 
      Frequency = 1 
      [1]  1 NA NA  3  6
      

      【讨论】:

        猜你喜欢
        • 2014-09-02
        • 1970-01-01
        • 2016-04-07
        • 2017-03-06
        • 2020-09-21
        • 2012-05-12
        • 2011-11-17
        • 2011-06-16
        • 2013-11-07
        相关资源
        最近更新 更多