首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dplyr group_by与滤波器

dplyr group_by与滤波器
EN

Stack Overflow用户
提问于 2016-11-29 15:25:23
回答 1查看 181关注 0票数 1

考虑以下dplyr查询

代码语言:javascript
复制
> mpg %>% group_by(class) %>% summarise(n())

输出是

代码语言:javascript
复制
# A tibble: 7 x 2
       class   n()
       <chr> <int>
1    2seater     5
2    compact    47
3    midsize    41
4    minivan    11
5     pickup    33
6 subcompact    35
7        suv    62

现在,我想将结果过滤如下:

代码语言:javascript
复制
> mpg %>% group_by(class) %>% filter(hwy==21) %>% summarise(n())

也就是说,我想显示有21英里公路里程的汽车班次。结果如下:

代码语言:javascript
复制
# A tibble: 2 x 2
       class   n()
       <chr> <int>
1    minivan     1
2 subcompact     1

这是预期的结果,但是我想要看到的是所有的类,如果一个类没有公路里程为21的汽车,那么n()应该报告为0。我该怎么做?

换句话说,我需要显示以下输出的dplyr查询:

代码语言:javascript
复制
# A tibble: 7 x 2
       class   n()
       <chr> <int>
1    2seater     0
2    compact     0
3    midsize     0
4    minivan     1
5     pickup     0
6 subcompact     1
7        suv     0

其中n()是公路里程为21的汽车班次。

这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-29 15:37:15

尝尝这个

代码语言:javascript
复制
mpg %>% mutate(k=(hwy==21)) %>% group_by(class) %>%
   summarise(n=sum(k))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40869555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档