我有一个像这样的日期值的数据集。
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
感谢任何帮助。
答案 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!='')]