我有一个数据框,可以对列size进行分组。当数据框按大小排列时,我想将每个组的每列的总计显示为 df 中的一行。
library(dplyr)
dat <- data.frame(size = c("S", "XS", "L", "M", "L", "L", "XS"),
category = c("shirt", "shirt", "shirt", "shirt", "pants", "hat", "pants"),
store1 = c(22, 3, 52, 10, 5, 37, 21),
store2 = c(43, 13, 2, 24, 6, 12, 40))
dat %>%
arrange(size)
size category store1 store2
1 L shirt 52 2
2 L pants 5 6
3 L hat 37 12
4 M shirt 10 24
5 S shirt 22 43
6 XS shirt 3 13
7 XS pants 21 40
Run Code Online (Sandbox Code Playgroud)
我想要得到这样的东西
size category store1 store2
1 L shirt 52 2
2 L pants 5 6
3 L hat 37 12
4 Total L 94 20
5 M shirt 10 24
6 Total M 10 24
7 S shirt 22 43
8 Total S 22 43
9 XS shirt 3 13
10 XS pants 21 40
11 Total XS 24 53
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏!
library( tidyverse )
library( janitor )
dat %>%
dplyr::arrange( size ) %>%
split( .[,"size"] ) %>%
purrr::map_df(., janitor::adorn_totals)
# size category store1 store2
# L shirt 52 2
# L pants 5 6
# L hat 37 12
# Total - 94 20
# M shirt 10 24
# Total - 10 24
# S shirt 22 43
# Total - 22 43
# XS shirt 3 13
# XS pants 21 40
# Total - 24 53
Run Code Online (Sandbox Code Playgroud)