让我们从DT1开始
library(data.table)
DT1 <- data.table(c(NA, NA, NA, NA, NA),
c(1, 1, 1, 1, NA),
c(1, 1, 1, 1, NA))
# 1: NA 1 1
# 2: NA 1 1
# 3: NA 1 1
# 4: NA 1 1
# 5: NA NA NA
我们也有DT2
DT2 <- data.table(c(NA, NA, NA, NA, NA),
c(2, 2, 2, 2, 2),
c(2, 2, 2, 2, 2))
# 1: NA 2 2
# 2: NA 2 2
# 3: NA 2 2
# 4: NA 2 2
# 5: NA 2 2
我想对两个data.table求和,所以我将得到以下结果:
# 1: NA 3 3
# 2: NA 3 3
# 3: NA 3 3
# 4: NA 3 3
# 5: NA 2 2
一种选择是 Map
setDT(Map(function(x,y) {x1 <- rowSums(cbind(x,y), na.rm = TRUE)
x1[is.na(x) & is.na(y)] <- NA
x1}, DT1, DT2))[]
# V1 V2 V3
#1: NA 3 3
#2: NA 3 3
#3: NA 3 3
#4: NA 3 3
#5: NA 2 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句