计算二进制变量的特定值并仅返回计数,最好使用dplyr

时间:2018-11-13 16:45:39

标签: r count dplyr

我必须获得一个单个二分变量的一个特定值的频率,最好使用dplyr,但我很乐意接受替代解决方案。它应该尽可能简短明了。

这里是例子:

dat<-data.frame(x=c(1,1,0,0,NA,NA))

我能做的就是这个...

dat %>% group_by(x) %>% summarise(sum(!is.na(x)))

...根据@akrun在另一个thread中的建议。

与此有关的问题是,它返回一个小标题,显示x所取每个值的计数:

# A tibble: 3 x 2
      x `sum(!is.na(x))`
  <dbl>            <int>
1    0.                2
2    1.                2
3   NA                 0

对于特定的x,我只需要一个数字,例如x==1。但是,将此条件(x==1)添加到dplyr命令将不起作用,因为它仅返回与上述相同的小标题输出。

简而言之,我需要一个返回x==1 x==2的计数的命令。因此,在这种情况下,理想的R输出将如下所示:

[1] 2

我也尝试过类似的事情...

!is.na(dat[,c("x")]==1)

,如果返回TRUE,则返回等于x==1的整数,否则返回FALSE。但是然后我需要计算TRUE

1 个答案:

答案 0 :(得分:2)

您可以尝试使用“ nrow”

dat %>% filter(x == 1) %>% nrow()