R 所有NA的行和 df

R 所有NA的行和 df,r,R,不是最好的解决方案,但是 df <- data.frame(a = c(1, 1, NA, 0, 1, 0), b = c(0, 1, NA, NA, 0, 1), c = c(NA, 0, NA, 0, 1, NA), d = c(1, NA, NA, 1, 1, 0)) rowSums(df) #[1] NA NA NA NA 3 NA rowSums(df, na.rm=T) #

不是最好的解决方案,但是

df <- data.frame(a = c(1, 1, NA, 0, 1, 0),
                 b = c(0, 1, NA, NA, 0, 1),
                 c = c(NA, 0, NA, 0, 1, NA),
                 d = c(1, NA, NA, 1, 1, 0))

rowSums(df)
#[1] NA NA NA NA  3 NA
rowSums(df, na.rm=T)
#[1] 2 2 0 1 3 1
a这里有一个选项:

a<-rowSums(df,na.rm=T)
a[a==0 & is.na(rowSums(df))]<-NA 

这使用的是
任何^0
在R中等于1。

参见这里:(乘以
ifelse
)那么带零的列呢?您无法将它们与NA列区分开来!您可以执行
a[rowSums(!is.na(df))==0]带零的列不应按原样传输。na(rowSums(df))等于F。或者我是否忽略了一个问题?
rowSums(df, na.rm = TRUE) * NA ^ (rowSums(!is.na(df)) == 0)
# [1]  2  2 NA  1  3  1