【问题标题】:Show groups with 0 group_by dplyr显示具有 0 group_by dplyr 的组
【发布时间】:2018-10-19 22:09:43
【问题描述】:

我有一个数据框,例如。

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。我怎样才能做到这一点?

【问题讨论】:

  • 您能否解释一下您要计算的内容,以及“2004 年不显示 1 组”是什么意思?另外,为什么你想要的输出只显示一个 2004 行?
  • ?它没有显示两个。本质上,我有数千个样本的二元表型,我想按年份对其进行分组并总结 1 和 0 的数量,但即使计数为 0 也会显示这两个组。
  • 哦,对不起,不知道我怎么错过了。我仍然不确定为什么一个有 n=1 而一个有 n=0...

标签: r dplyr


【解决方案1】:

我想你在找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 日创建

【讨论】:

  • 翻译这个问题做得很好
猜你喜欢
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
相关资源
最近更新 更多