向数据框添加其他日期

时间:2016-10-25 18:54:00

标签: r date dataframe

我有一个数据框,由日期列和相应的值组成(所以2列矩阵)。我想添加额外的行来延长数据的周期。我的数据从1990年初开始每小时开始一次,我希望每小时将其延长至1979年初,相应的值为NA。 有没有办法做到这一点? 感谢

1 个答案:

答案 0 :(得分:0)

对数据集的采样频率进行内插或外推的最常用方法是将现有数据集连接到您希望数据具有的日期时间向量。这是一个例子:

library(dplyr)
library(lubridate)

df_foo = data_frame(
  # assuming that this is the existing dataset
  Datetime = seq.POSIXt(
    from = as.POSIXct("1990-01-01 00:00:00"),
    to = as.POSIXct("2000-01-01 00:00:00"),
    by = "hour"
  ),
  value = rnorm(
    n = length(
      seq.POSIXt(
        from = as.POSIXct("1990-01-01 00:00:00"),
        to = as.POSIXct("2000-01-01 00:00:00"),
        by = "hour"
      )
    )
  )
)


df_foo_extended = df_foo %>% 
  full_join(
    data_frame(
      Datetime = seq.POSIXt(
        from = as.POSIXct("1979-01-01 00:00:00"),
        to = as.POSIXct("2000-01-01 00:00:00"),
        by = "hour"
      )
    ),
    by = "Datetime"
  )

您没有告诉我们数据集的结束位置,因此我任意假设它在2000年结束。