【问题标题】:How to fill in time series data into a data frame?如何将时间序列数据填充到数据框中?
【发布时间】:2021-02-28 04:48:04
【问题描述】:

我正在处理以下时间序列数据:

Weeks <- c("1995-01", "1995-02", "1995-03", "1995-04", "1995-06", "1995-08", "1995-10", "1995-15", "1995-16", "1995-24", "1995-32")
Country <- c("United States")
Values <- sample(seq(1,500,1), length(Weeks),  replace = T)

df <- data.frame(Weeks,Country, Values)

     Weeks       Country Values
1  1995-01 United States    193
2  1995-02 United States    183
3  1995-03 United States    402
4  1995-04 United States     75
5  1995-06 United States    402
6  1995-08 United States    436
7  1995-10 United States     97
8  1995-15 United States    445
9  1995-16 United States    336
10 1995-24 United States     31
11 1995-32 United States    413

它的结构是根据年份和该年的周数(第 1 列)。请注意,如何省略几个星期(作为聚合函数的结果)。例如,不包括 1995-05。如何将省略的行包含到数据中,添加适当的国家名称,并为它们分配一个值 = 0?

感谢您的帮助!

【问题讨论】:

    标签: r time-series data-manipulation


    【解决方案1】:

    separate 不同列中的年份和星期值。对于每个CountryYears 我们将complete 缺失的周数和assign Values 设置为0。最后unite 年和周列以与原始数据相同的格式获取数据。

    library(dplyr)
    library(tidyr)
    
    df %>%
      separate(Weeks, c('Years', 'Weeks'), sep = '-', convert = TRUE) %>%
      group_by(Country, Years) %>%
      complete(Weeks = min(Weeks):max(Weeks), fill = list(Values = 0)) %>%
      ungroup() %>%
      mutate(Weeks = sprintf('%02d', Weeks)) %>%
      unite(Weeks, Years, Weeks, sep = '-')
    
    #   Country       Weeks   Values
    #   <chr>         <chr>    <dbl>
    # 1 United States 1995-01    354
    # 2 United States 1995-02    395
    # 3 United States 1995-03    408
    # 4 United States 1995-04    143
    # 5 United States 1995-05      0
    # 6 United States 1995-06    481
    # 7 United States 1995-07      0
    # 8 United States 1995-08     49
    # 9 United States 1995-09      0
    #10 United States 1995-10    229
    # … with 22 more rows
    

    【讨论】:

      猜你喜欢
      • 2020-10-20
      • 2019-09-16
      • 2018-07-24
      • 2021-08-11
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 2017-12-13
      相关资源
      最近更新 更多