填充日期直到遇到R的下一个日期值

时间:2015-05-08 19:13:31

标签: r date

我有一个像这样的日期值的数据集。

      Date        Id
      10/1/2013   3444
                  87873
                  1243
                  35473
                  7363
                  8335 
      10/2/2013   4783
                  3355
                  4544
                  94453
                  33554

我要做的是自动填充日期值,直到遇到下一个日期值,应填充2013年10月1日,直到遇到2013年10月2日。最终数据集应如下所示

      Date        Id
      10/1/2013   3444
      10/1/2013   87873
      10/1/2013   1243
      10/1/2013   35473
      10/1/2013   7363
      10/1/2013   8335 
      10/2/2013   4783
      10/2/2013   3355
      10/2/2013   4544
      10/2/2013   94453
      10/2/2013   33554

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

na.locf值更改为zoo后,我们可以''尝试NA

library(zoo)
is.na(df1$Date) <- df1$Date==''
df1$Date <- na.locf(df1$Date)

或者使用data.table,我们将'data.frame'转换为'data.table'(setDT(df1)),对于分组变量(cumsum(Date!='')),我们分配({{ 1}})'Date'作为'Date'(:=

的第一个元素
Date[1L]

数据

library(data.table)
setDT(df1)[, Date:= Date[1L] , cumsum(Date!='')]