【问题标题】:Complete a table of time-frequency by time series [duplicate]按时间序列完成时间频率表[重复]
【发布时间】:2018-02-23 07:06:37
【问题描述】:

考虑一个时间频率表

2008-01-01 2008-01-03 2008-01-05 2008-01-06 2008-01-07 2008-01-08
         1          8          2          2          3          1

请注意,2008-01-02 和 2008-01-04 已丢失。

预期的结果如下所示:

2008-01-01 2008-01-02 2008-01-03 2008-01-04 2008-01-05 2008-01-06 2008-01-07 2008-01-08
         1          0          8          0          2          2          3          1

或者以日期框的形式:

   Time    Frequency
2008-01-01    1
2008-01-02    0
2008-01-03    8
2008-01-04    0
2008-01-05    2
2008-01-06    2
2008-01-07    3
2008-01-08    1

【问题讨论】:

    标签: r time-series


    【解决方案1】:

    更好的选择是转换为factor 并指定levels,然后执行table

    rndates <- range(dates)
    table(factor(dates, levels = as.character(seq(rndates[1], rndates[2], by = "1 day"))))
    #  2008-01-01 2008-01-02 2008-01-03 2008-01-04 2008-01-05 2008-01-06 2008-01-07 2008-01-08 
    #        4          0          7          0          1          5          6          2 
    

    数据

    set.seed(24)
    dates <- sample(as.Date(c("2008-01-01", "2008-01-03", "2008-01-05", 
        "2008-01-06", "2008-01-07", "2008-01-08")), 25, replace = TRUE)
    

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 2018-07-21
      • 2013-02-12
      • 1970-01-01
      • 2021-01-26
      • 2019-08-02
      • 2013-10-13
      • 2018-06-24
      相关资源
      最近更新 更多