估计平均得分,包括R中的缺失

时间:2018-07-30 15:39:46

标签: r mean missing-data

我正在尝试基于数据帧中的四列来估计平均得分。条件是连续至少两个值应具有四个值中的非缺失值。否则,如果该行中存在两个以上的NA,则平均得分应为NA。假设数据集中只有三个值,而一个NA。然后,将总得分除以3,因为我需要将总得分除以可用值的数量。

我的数据如下:

a = c(1, 1, 1, 1, NA, 2, NA)
b = c(2, 4, NA, 4, 1, NA, 8)
c = c(2, NA, 6, 4, NA, 4, NA)
d = c(2, 4, NA, 4, NA, 3, NA)
df <- data.frame(a,b,c,d)

> df
   a  b  c  d
1  1  2  2  2
2  1  4 NA  4
3  1 NA  6 NA
4  1  4  4  4
5 NA  1 NA NA
6  2 NA  4  3
7 NA  8 NA NA

我希望分数为

>df$mean
1.75
3
3.5
3.25
NA
3
NA

有什么想法吗? 预先感谢。

1 个答案:

答案 0 :(得分:6)

您可以使用rowSumsrowMeansifelse

ifelse(rowSums(is.na(df))<=2,rowMeans(df,na.rm=T),NA)
[1] 1.75 3.00 3.50 3.25   NA 3.00   NA