Eri*_*ail 2 if-statement r sum na na.rm
我需要在data.frame中对一些列进行求和,并使用一条规则来说明,如果只有1或更少的缺失要求总和,NA则如果缺少一个以上的观察,则要对一列NA进行求和.
说我有这样的数据,
dfn <- data.frame(
a = c(3, 3, 0, 3),
b = c(1, NA, 0, NA),
c = c(0, 3, NA, 1))
dfn
a b c
1 3 1 0
2 3 NA 3
3 0 0 NA
4 3 NA 1
Run Code Online (Sandbox Code Playgroud)
我应用我的规则,并将少于2的列总和NA.所以我得到这样的东西.
a b c
1 3 1 0
2 3 NA 3
3 0 0 NA
4 3 NA 1
5 9 NA 4
Run Code Online (Sandbox Code Playgroud)
我玩过colSums(dfn, na.rm = FALSE)和colSums(dfn, na.rm = TRUE).在我的真实数据中,有超过三列,也有超过4行.我想我可以用某种方式计算缺失并将其作为规则使用?
我不认为你可以colSums单独做到这一点,但你可以使用ifelse以下内容添加到其结果:
colSums(dfn,na.rm=TRUE) + ifelse(colSums(is.na(dfn)) > 1, NA, 0)
a b c
9 NA 4
Run Code Online (Sandbox Code Playgroud)