我有一个数据表,像这样:
DT <- data.table(id = c(rep("a", 3), rep("b", 3)),
col1 = c(NA,1,2,NA,3,NA), col2 = c(NA,NA,5,NA,NA,NA))
id col1 col2
1: a NA NA
2: a 1 NA
3: a 2 5
4: b NA NA
5: b 3 NA
6: b NA NA
对于每个id,我想使用zoo::na.trim
删除'col1'中的前导NA
行。这里是我期望的结果:
id col1 col2
1: a 1 NA
2: a 2 5
3: b 3 NA
4: b NA NA
这是我目前尝试过的方法。它确实删除了“col1”中前导的NA
,但是结果中省略了“col2”:
DT[ , na.trim(col1), by = id]
id V1
1: a 1
2: a 2
3: b 3
这也不起作用:
DT[ , .SD[na.trim(col1)], by = id]
id col1 col2
1: a NA NA
2: a 1 NA
3: b NA NA
na.trim
的软件包。 - akrunsides
参数,即DT[, zoo::na.trim(col1, sides = "left"), by = id]
。 - akrun