group_split()
与 base::split()
类似,但是:
-
它使用
group_by()
中的分组结构,因此受数据掩码的约束 -
它不会根据分组命名列表的元素,因为这只适用于单个字符分组变量。相反,使用
group_keys()
访问定义组的数据帧。
group_split()
主要设计用于处理分组数据帧。您可以传递 ...
来对未分组的数据帧进行分组和拆分,但这通常不是很有用,因为您希望轻松访问组元数据。
参数
- .tbl
-
一表格。
- ...
-
如果
.tbl
是未分组的数据帧,则分组规范,转发到group_by()
。 - .keep
-
是否应该保留分组列?
值
一个小标题列表。每个 tibble 包含关联组的 .tbl
行和所有列,包括分组变量。请注意,这会返回一个 list_of,它比简单列表稍微严格一些,但对于表示每个元素都具有相同类型的列表很有用。
生命周期
group_split()
不稳定,因为您可以通过操作从 tidyr::nest(.by =)
返回的嵌套列来获得非常相似的结果。这还将组 key 全部保留在单个数据结构中。 group_split()
将来可能会被弃用。
也可以看看
其他分组函数:group_by()
、group_map()
、group_nest()
、group_trim()
例子
ir <- iris %>% group_by(Species)
group_split(ir)
#> <list_of<
#> tbl_df<
#> Sepal.Length: double
#> Sepal.Width : double
#> Petal.Length: double
#> Petal.Width : double
#> Species : factor<fb977>
#> >
#> >[3]>
#> [[1]]
#> # A tibble: 50 × 5
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> <dbl> <dbl> <dbl> <dbl> <fct>
#> 1 5.1 3.5 1.4 0.2 setosa
#> 2 4.9 3 1.4 0.2 setosa
#> 3 4.7 3.2 1.3 0.2 setosa
#> 4 4.6 3.1 1.5 0.2 setosa
#> 5 5 3.6 1.4 0.2 setosa
#> 6 5.4 3.9 1.7 0.4 setosa
#> 7 4.6 3.4 1.4 0.3 setosa
#> 8 5 3.4 1.5 0.2 setosa
#> 9 4.4 2.9 1.4 0.2 setosa
#> 10 4.9 3.1 1.5 0.1 setosa
#> # ℹ 40 more rows
#>
#> [[2]]
#> # A tibble: 50 × 5
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> <dbl> <dbl> <dbl> <dbl> <fct>
#> 1 7 3.2 4.7 1.4 versicolor
#> 2 6.4 3.2 4.5 1.5 versicolor
#> 3 6.9 3.1 4.9 1.5 versicolor
#> 4 5.5 2.3 4 1.3 versicolor
#> 5 6.5 2.8 4.6 1.5 versicolor
#> 6 5.7 2.8 4.5 1.3 versicolor
#> 7 6.3 3.3 4.7 1.6 versicolor
#> 8 4.9 2.4 3.3 1 versicolor
#> 9 6.6 2.9 4.6 1.3 versicolor
#> 10 5.2 2.7 3.9 1.4 versicolor
#> # ℹ 40 more rows
#>
#> [[3]]
#> # A tibble: 50 × 5
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> <dbl> <dbl> <dbl> <dbl> <fct>
#> 1 6.3 3.3 6 2.5 virginica
#> 2 5.8 2.7 5.1 1.9 virginica
#> 3 7.1 3 5.9 2.1 virginica
#> 4 6.3 2.9 5.6 1.8 virginica
#> 5 6.5 3 5.8 2.2 virginica
#> 6 7.6 3 6.6 2.1 virginica
#> 7 4.9 2.5 4.5 1.7 virginica
#> 8 7.3 2.9 6.3 1.8 virginica
#> 9 6.7 2.5 5.8 1.8 virginica
#> 10 7.2 3.6 6.1 2.5 virginica
#> # ℹ 40 more rows
#>
group_keys(ir)
#> # A tibble: 3 × 1
#> Species
#> <fct>
#> 1 setosa
#> 2 versicolor
#> 3 virginica
相关用法
- R dplyr group_trim 修剪分组结构
- R dplyr group_map 对每个组应用一个函数
- R dplyr group_by_all 按选择的变量进行分组
- R dplyr group_by_drop_default group_by 的 .drop 参数的默认值
- R dplyr group_by 按一个或多个变量分组
- R dplyr group_nest 使用分组规范嵌套 tibble
- R dplyr group_data 元数据分组
- R dplyr group_cols 选择分组变量
- R dplyr slice 使用行的位置对行进行子集化
- R dplyr copy_to 将本地数据帧复制到远程src
- R dplyr sample_n 从表中采样 n 行
- R dplyr consecutive_id 为连续组合生成唯一标识符
- R dplyr row_number 整数排名函数
- R dplyr band_members 乐队成员
- R dplyr mutate-joins 变异连接
- R dplyr nth 从向量中提取第一个、最后一个或第 n 个值
- R dplyr coalesce 找到第一个非缺失元素
- R dplyr mutate 创建、修改和删除列
- R dplyr order_by 用于排序窗口函数输出的辅助函数
- R dplyr context 有关“当前”组或变量的信息
- R dplyr percent_rank 比例排名函数
- R dplyr recode 重新编码值
- R dplyr starwars 星球大战人物
- R dplyr desc 降序
- R dplyr between 检测值落在指定范围内的位置
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Split data frame by groups。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。