想象一下,我有三个变量,想要创建一个名为Total的第四个变量,它是A,B和C的总和但是....如果缺失值(NA)出现在1或2个变量上但不是在它们中的三个中它们一起变为0.如下面的例子中所示(最后一行)
A B C Total
10 10 10 30
NA NA NA NA
10 NA NA 10
到目前为止,我有:
data$Total <- A + B + C
干杯
答案 0 :(得分:2)
data$Total2 <- rowSums(data[, c("A", "B", "C")])
data$Total2[rowSums(is.na(data[, c("A", "B", "C")])) %in% 1:2] <- 0
data
A B C Total Total2
1 10 10 10 30 30
2 NA NA NA NA NA
3 10 NA NA 10 0
也许我误解了要求,已经指定的Total
是希望的输出。在那种情况下:
data$Total3 <- rowSums(data[, c("A", "B", "C")], na.rm = TRUE)
data$Total3[rowSums(is.na(data[, c("A", "B", "C")])) == 3] <- NA
data
A B C Total Total2 Total3
1 10 10 10 30 30 30
2 NA NA NA NA NA NA
3 10 NA NA 10 0 10