如果我有以下数据表:
dat <- data.table("id"=c(1,1,1,1,2,2,2,2), "var1"=c(NA,1,2,2,1,1,2,2),
"var2"=c(4,4,4,4,5,5,NA,4), "var3"=c(4,4,4,NA,5,5,5,4))
id var1 var2 var3
1: 1 NA 4 4
2: 1 1 4 4
3: 1 2 4 4
4: 1 2 4 NA
5: 2 1 5 5
6: 2 1 5 5
7: 2 2 NA 5
8: 2 2 4 4
如何用 id 中每列的平均值替换缺失值?在我的实际数据中,我有许多变量,这些变量仅适用于我希望替换的变量,那么如何以通用方式完成,例如它不会替换为 var3 而仅替换为 var1 和 var2?:
tomean=c("var1", "var2")
我尝试过类似的方法,但我还没有找到解决方案:
dat[, (tomean) := mean(tomean, na.rm=TRUE), by=id, .SDcols = tomean]