背景:我需要使用因子顺序来使得arrange
以一定的方式显示表格。即,我想在每个组的末尾获得“总计”行。
问题:使用fct_relevel
仅能在第一个组中达到期望的输出。
示例:
library(dplyr)
library(forcats)
total_masses <- starwars %>%
group_by(species) %>%
summarise(mass = sum(mass),
name = "Total mass")
df <- bind_rows(starwars, total_masses) %>%
select(species, name, mass) %>%
group_by(species) %>%
mutate(name = fct_relevel(name, "Total mass", after = Inf)) %>%
arrange(mass, name, species)
df
#> # A tibble: 125 x 3
#> # Groups: species [38]
#> species name mass
#> <chr> <fct> <dbl>
#> 1 Aleena Ratts Tyerell 15
#> 2 Aleena Total mass 15
#> 3 Yoda's species Total mass 17 # I expect this line to be at the end of the Yoda's species group
#> 4 Yoda's species Yoda 17
#> 5 Ewok Total mass 20
#> 6 Ewok Wicket Systri Warrick 20
#> 7 Droid R2-D2 32
#> 8 Droid R5-D4 32
#> 9 Dug Total mass 40
#> 10 Dug Sebulba 40
#> # ... with 115 more rows
这是由reprex软件包(v2.0.0)在2021年05月31日创建的
我希望每个物种
类别的末尾都有对应的总质量
:
species name mass
<chr> <fct> <dbl>
1 Aleena Ratts Tyerell 15
2 Aleena Total mass 15
3 Yoda's species Yoda 17
4 Yoda's species Total mass 17
etc...
我觉得解决方案很明显,但我找不到正确的关键词来解决它... 欢迎任何提示!