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

标签 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

感谢任何帮助。

最佳答案

我们可以尝试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!='') ),我们将 ( := ) 'Date' 指定为 'Date' 的第一个元素 ( Date[1L])

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

数据

 df1 <- structure(list(Date = c("10/1/2013", "", "", "", "", "", 
 "10/2/2013", 
 "", "", "", ""), Id = c(3444L, 87873L, 1243L, 35473L, 7363L, 
 8335L, 4783L, 3355L, 4544L, 94453L, 33554L)), .Names = c("Date", 
 "Id"), class = "data.frame", row.names = c(NA, -11L))

关于r - 日期填充直到遇到下一个日期值 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30131240/

相关文章:

r - 在 R 中,如何将列表插入接受两个参数的函数中?

r - 使用 devtools::install_local 构建小插图 - 在一个小插图中创建的全局变量在另一个小插图中可用

user-interface - R 脚本 : Determine whether the script is run in the GUI or from command line

javascript - 如何将 unix 时间戳转换为 TypeScript 中的日期?

javascript客户端日期格式

r - 如何设置自定义 R 安装以在 Jupyter 中使用 rpy2?

r - 如何创建均值和 s.d.带有 data.table 的列(基于多个条件)

php - 如何将 2010-03-01 转换为 Unixtime (使用 php)

python - 计算从年/月开始到今天的天数

python - Pandas groupby 排名日期时间