我有一个数据框,例如。
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。我该如何做呢?
答案 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创建