假设我有
az<-data.table(a=1:6,b=6:1,c=4)
az[b==4,c:=NA]
az
a b c
1: 1 6 4
2: 2 5 4
3: 3 4 NA
4: 4 3 4
5: 5 2 4
6: 6 1 4
我可以得到所有列的总和
az[,lapply(.SD,sum)]
a b c
1: 21 21 NA
这是我想要的a
,b
但c
不适用。这似乎很容易通过做来解决
az[,lapply(na.omit(.SD),sum)]
a b c
1: 18 17 20
这就是我想要的,c
但我不想省略a
and b
where c
is的值NA
。这是我真实数据中的一个人为示例,其中可能有 1000 多列随机 NA。有没有办法让na.omit
每列而不是在整个表上执行操作而不依赖于将每一列作为向量循环?