我必须遗漏一些关于如何剥离group_by水平的东西dplyr.在下面的示例中,我将2列分组,将值汇总到单个变量中,然后按该新变量排序:
mtcars %>% group_by( cyl, gear ) %>%
summarize( hp_range = max(hp) - min(mpg)) %>%
arrange( desc(hp_range) )
# Source: local data frame [8 x 3]
# Groups: cyl [3]
#
# cyl gear hp_range
# (dbl) (dbl) (dbl)
#1 4 4 87.6
#2 4 5 87.0
#3 4 3 75.5
#4 6 5 155.3
#5 6 4 105.2
#6 6 3 91.9
#7 8 5 320.0
#8 8 3 234.6
Run Code Online (Sandbox Code Playgroud)
显然这不按hp_range预期排序.我错过了什么?
编辑:该示例按预期工作,没有desc安排调用.还不清楚为什么?
好的,刚刚到底:
desc没有效果,这是一个偶然的例子,没有它就没有用关键是,当您有group_by多个列时,似乎结果会自动按组排序.在上面的示例中,它按排序cyl.为了获得预期的排序整个数据表,你必须先ungroup再arrange
mtcars %>% group_by( cyl, gear ) %>%
summarize( hp_range = max(hp) - min(mpg)) %>%
ungroup() %>%
arrange( hp_range )
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |