2016-10-25 28 views
1

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

+1

欢迎SO结束。请阅读[(1)](http://stackoverflow.com/help/how-to-ask)我该如何提出一个好问题,[(2)](http://stackoverflow.com/help/mcve)如何创建一个MCVE以及[(3)](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#answer-5963610)如何提供一个在R中最小的重现性示例。然后相应地编辑和改进您的问题。 – Christoph

回答

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年