在R dplyr中添加布尔值

时间:2016-08-31 10:14:10

标签: r dplyr

我有一个数据框,我正在尝试计算非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'必须是至少包含两个维度的数组

0 个答案:

没有答案