我有一个数据框,我正在尝试计算非NA值的数量
csv <- "A,B,C,D,E,F,G
NA,NA,1,NA,NA,NA,NA
0,NA,0,NA,1,NA,1
NA,1,1,NA,0,NA,NA
0,1,1,0,NA,NA,0"
temp <- read.csv(text=csv)
temp %>% mutate(twopresent = ifelse((!is.na(A)+!is.na(B)+!is.na(C)) >= 2, TRUE, FALSE),
total = sum(A,B,C, na.rm=TRUE) )
我希望看到:
A B C D E F G twopresent total
1 NA NA 0 NA NA NA NA FALSE 0
2 0 NA 0 NA 1 NA 1 TRUE 0
3 NA 1 1 NA 0 NA NA TRUE 2
4 0 1 0 0 NA NA 0 TRUE 1
但是得到:
A B C D E F G twopresent total
1 NA NA 1 NA NA NA NA FALSE 5
2 0 NA 0 NA 1 NA 1 FALSE 5
3 NA 1 1 NA 0 NA NA FALSE 5
4 0 1 1 0 NA NA 0 FALSE 5
dplyr中的rowSums解决方案:
temp %>% mutate(twopresent =
ifelse(rowSums(!is.na(A), !is.na(B), !is.na(C)) >= 2,
TRUE,
FALSE),
total = rowSums(A,B,C, na.rm=TRUE) )
给出:
错误:'x'必须是至少包含两个维度的数组