これは少しばかげているかもしれませんが、私はこの問題に対処するより良い方法に感謝します。私は一部のカラムだけ、と言うのを合計したいが、私は合計列のすべての要素がNAのときのNAを維持したいと思い、次のすべての要素がNAである場合の操作の結果としてのNA
a <- matrix(1,5,3)
a[1:2,2] <- NA
a[1,c(1,3)] <- NA
a[3:5,2] <- 2
a[2:5,3] <- 3
a <- data.frame(a)
colnames(a) = c("First", "Second", "Third")
としてデータフレームを持っています。私は1列目と2列目を合計した場合要するに、私は下の2つのオプションのどちらもが、私は
rowSums(a[, c("First", "Second")])
rowSums(a[, c("First", "Second")], na.rm=TRUE)
欲しいものを提供していますが、正の側に私がすることによってこれを解決した
mySum <- c(NA, 1, 3, 3, 3)
のようなものを取得したいですこれを処理するよりスマートな方法がある場合ので、私は思っていたのにis.naの組み合わせを使用して、すべての
mySum <- rowSums(a[, c("First", "Second")], na.rm=TRUE)
iNA = apply(a[, c("First", "Second")], 2, is.na)
iAllNA = apply(iNA, 1, all)
mySum[iAllNA] = NA
これは少しぎこちない感じています。すべての行要素がNA
をしている場合