У меня есть 5 столбцов числовых данных (m1, m2, m3, m4, m5), и я хочу создать новый столбец со средним значением всех m в той же строке. То есть:
(m1 + m2 + m3 + m4 + m5)/5
У меня проблема с управлением значениями NA: я хочу, чтобы среднее значение было NA, если и только если все индивидуальные значения m равны NA. Но если я использую na.rm, то NA заменяются нулями, и в столбце средних значений нет NA. С другой стороны, если я не использую na.rm, столбец средних значений равен NA, если ЛЮБОЙ из m есть NA.
Я сделал следующее:
m <- rowSums(data.frame(m1,m2,m3,m4,m5)/5, na.rm=TRUE)
for (i in 1:length(m)) {
if ( all(is.na(c(m1[i],m2[i],m3[i],m4[i],m5[i])))) {
m[i] <- NA
}
}
Это работает, но я почти уверен, что R может сделать это лучше. Как это можно сделать без петель?
Может быть, вопрос звучит немного тривиально. Извините за это, но я новичок в R.
Заранее спасибо.