数据 table,按组删除前导缺失值

Data table, removing leading missing values by group

下面是一个示例数据 table,我想删除值为 NA 且前面的行都没有值的行,即也有 NA,并且按组。由于并非所有人都有相同数量的前导缺失值,我陷入困境并且没有任何运气搜索。

示例数据table

    group    date     value
      a 2015-01-01    NA
      a 2015-01-02     2
      a 2015-01-03     3
      a 2015-01-04    NA
      a 2015-01-05     2
      b 2015-01-01    NA
      b 2015-01-02    NA
      b 2015-01-03     2
      b 2015-01-04    NA
      b 2015-01-05     2

完成数据table

    group    date     value
      a 2015-01-02     2
      a 2015-01-03     3
      a 2015-01-04    NA
      a 2015-01-05     2
      b 2015-01-03     2
      b 2015-01-04    NA
      b 2015-01-05     2

稍后我打算用前后的值来估算缺失值。

编辑: 找到以前问过的问题 here,这是相似的。

一个基本的方法是使用 which.N,像这样:

DT[, .SD[(which(!is.na(value))[1]):.N], by = group]
##    group       date value
## 1:     a 2015-01-02     2
## 2:     a 2015-01-03     3
## 3:     a 2015-01-04    NA
## 4:     a 2015-01-05     2
## 5:     b 2015-01-03     2
## 6:     b 2015-01-04    NA
## 7:     b 2015-01-05     2