估计平均分数,包括 R 中的缺失
Estimate mean score including missingness in R
我正在尝试根据数据框中的四列估算平均分数。条件是一行中至少有两个值应具有四个值中的非缺失值。否则,如果该行中存在两个以上的 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
有什么想法吗?
提前致谢。
您可以使用 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
我正在尝试根据数据框中的四列估算平均分数。条件是一行中至少有两个值应具有四个值中的非缺失值。否则,如果该行中存在两个以上的 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
有什么想法吗? 提前致谢。
您可以使用 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