【问题标题】:Year column to time series [duplicate]时间序列的年份列[重复]
【发布时间】:2018-01-09 12:55:23
【问题描述】:

好的,这应该很简单,但我没有“明白”。我有一个包含“年份”列的数据框,我想将其转换为时间序列,但格式让我很吃惊。如何将“年份”值转换为日期,实际日期为每一年的结束日期(例如 2015 年 -> 2015 年 12 月 31 日)?

  Year   Production
1 1900     38400000
2 1901     43400000
3 1902     49000000
4 1903     44100000
5 1904     49800000

目标是将其转换为时间序列数据框。 (例如 xts)

这与上一个将年份向量转换为日期的问题不太一样。 "Convert four digit year values to date type"。目标是按日期索引数据,将其转换为 xts 或类似对象。

已编辑:
这是最终的解决方案:

df <- xts(x = df_original, order.by = as.Date(paste0(df_original[,1], "-12-31")))

其中“[,1]”表示原始数据框的第一列。

【问题讨论】:

    标签: r date


    【解决方案1】:

    如果您希望每个完整日期为 12 月 31 日,您可以使用 paste 和 as.Date 来转换为日期:

    df$date <- as.Date(paste0(df$Year, "-12-31"))
    

    【讨论】:

      【解决方案2】:

      除了蒂姆·比格莱森的回答,我只是添加另一种方式

      df$final_date <- as.Date(ISOdate(df$Year, 12, 31))
      

      【讨论】:

      • 那行得通。它将四位数年份转换为日期并添加新列。然后,您将如何将 df$final_date 转换为索引和 xts 对象。 (或其他时间序列对象)?
      猜你喜欢
      • 1970-01-01
      • 2017-10-04
      • 2015-05-13
      • 1970-01-01
      • 2021-03-14
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 2018-11-07
      相关资源
      最近更新 更多