ami*_*s55 2 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
Run Code Online (Sandbox Code Playgroud)
我希望分数为
>df$mean
1.75
3
3.5
3.25
NA
3
NA
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?提前致谢.
你可以做rowSums,rowMeans和ifelse
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
Run Code Online (Sandbox Code Playgroud)