R语言使用group_map时如何将分组信息添加到结果tibble中
实现方案
方法1:直接使用group_map的内置参数.y
group_map 向匿名函数传入两个默认参数:
.x:当前分组的子集数据(不包含分组键列).y:当前分组的分组键组成的单行tibble
直接通过bind_cols将二者合并即可给每个子tibble添加分组信息:
library(tidyverse) mtcars %>% group_by(cyl) %>% group_map(~ bind_cols(.y, head(.x, 2)))
运行后返回的列表内每个tibble都会自带cyl分组列。
方法2:使用group_modify简化操作
如果不需要额外处理分组逻辑,可以直接用group_modify,该函数是group_map的衍生变体,默认会自动将分组键绑定到每个分组的处理结果中:
# 返回带分组列的整体tibble,需转列表可后续加`group_split()` mtcars %>% group_by(cyl) %>% group_modify(~ head(.x, 2))
如果需要得到和group_map相同的列表结构,在末尾补充%>% group_split()即可。
内容的提问来源于stack exchange,提问作者anderwyang
相关产品推荐
相关产品推荐

