显示具有0个组的组dplyr

时间:2018-10-19 13:56:52

标签: r dplyr

我有一个数据框,例如。

a<-data.frame(
   year=c(2001,2001,2002,2004,2001,2002,2004),
   binary=c(1,0,1,0,1,0,0))

我尝试例如:

a %>% group_by(year) %>% count()

我想要输出:

year    binary   n
2001    0        1
2001    1        1
2002    1        1
2002    0        1
2004    0        1
2004    1        0

我想绘制多少个样本具有1个表型,但是group_by deos在2004年没有显示1个组,因为它的计数为0。我该如何做呢?

1 个答案:

答案 0 :(得分:4)

我认为您正在寻找tidyr::complete()

library(dplyr)
library(tidyr)

a<-data.frame(
  year=c(2001,2001,2002,2004,2001,2002,2004),
  binary=c(1,0,1,0,1,0,0))

a %>% 
  group_by(year) %>% 
  count(binary) %>% 
  ungroup() %>% 
  complete(year, binary, fill = list(n = 0))
#> # A tibble: 6 x 3
#>    year binary     n
#>   <dbl>  <dbl> <dbl>
#> 1  2001      0     1
#> 2  2001      1     2
#> 3  2002      0     1
#> 4  2002      1     1
#> 5  2004      0     2
#> 6  2004      1     0

reprex package(v0.2.1)于2018-10-19创建