【发布时间】:2020-06-03 17:18:54
【问题描述】:
使用这个数据集:
sex <- c("M","F","M","M","F","F","F","M","M","F")
school <- c("north","north","central","south","south","south","central","north","north","south")
school_type <- c("high","high","primary","secondary","secondary","secondary","primary","high", "high","secondary")
days_missed <- c(5,1,2,0,7,1,3,2,4,15)
df <- data.frame(sex, school, school_type,days_missed, stringsAsFactors = F)
col1 <- c( 'school_type')
col2 <- c('school','sex')
我们能否将数据框按col1 拆分,然后将每个结果数据框按col2 分组以创建如下输出:
$high .x
school sex sum
north F 1
north M 11
$primary .x
school sex sum
central F 3
central M 2
$seconday .x
school sex sum
south F 23
south M 0
我试过了:
purrr::map(.x=col1, .f = ~df %>% group_by_at(.x) %>%group_by(col2) %>% summarise(sum = sum(days_missed)))
欢迎输入和建议
【问题讨论】:
-
重要的是结果是 3 个数据帧的列表,还是像
df %>% group_by(school_type, school, sex) %>% summarise(days_missed = sum(days_missed))这样的一个数据帧? -
是的,重要的是 3 个数据帧中的每一个都保持独立