【问题标题】:Time Series analysis with R, how to deal with daily data用R进行时间序列分析,如何处理日常数据
【发布时间】:2013-09-16 07:56:27
【问题描述】:

我尝试将每日数据集转换为ts,但是如何处理闰年?那么我应该将频率设置为什么值呢?

ts(data,start=c(2010,1,1),frequency=365)?

【问题讨论】:

  • 这里有一点误解:对于?ts,R 给出了 "start - 第一次观察的时间。可以是单个数字,也可以是两个整数的向量" 。 ts 函数不知道您要做什么(给出 YMD 日期)。

标签: r statistics time-series


【解决方案1】:

我建议使用包zooxts(依赖于zoo)。使用这些时间格式,您可以定义有或没有夏令时或闰年的时间序列。

另外,我建议使用包lubridate 进行时间跨度计算。 lubridate 使周期和持续时间有所不同。

duration 类测量两个时刻之间的确切时间跨度,您可以在秒表上测量。

相比之下,期间是例如“一个月”。但是一个月有多长?看你指的是哪个月份。例如,在闰年,二月的持续时间不同,但期间的长度相同。

您是否需要持续时间或期限取决于您的主题和目标。使用zoolubridate,您可以选择与您相关的那个。

【讨论】:

    【解决方案2】:

    要处理闰年的频率,设置频率如下:

    date=c(2010,1,1)
    
    ts(data,start=date,frequency=365+1* (!date[1]%%400 || ((date[1]%%100)&&!date[1]%%4) ))?
    

    【讨论】:

      【解决方案3】:

      频率可以设置为 365.25 以包括闰年

      ts(data,start=c(2010,1,1),frequency=365.25)
      

      【讨论】:

        猜你喜欢
        • 2014-10-01
        • 2022-01-14
        • 2015-09-15
        • 2019-07-03
        • 1970-01-01
        • 2020-05-19
        • 2016-11-04
        • 1970-01-01
        • 2020-08-29
        相关资源
        最近更新 更多