我必须获得一个单个二分变量的一个特定值的频率,最好使用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
。
答案 0 :(得分:2)
您可以尝试使用“ nrow”
dat %>% filter(x == 1) %>% nrow()