hoist()
允许您有选择地将列表列的组件拉入它们自己的顶级列,使用与 purrr::pluck()
相同的语法。
在vignette("rectangle")
中了解更多信息。
参数
- .data
-
一个 DataFrame 。
- .col
-
<
tidy-select
> 要从中提取组件的列表列。 - ...
-
<
dynamic-dots
>.col
的组件将转换为col_name = "pluck_specification"
形式的列。您可以使用字符向量按名称进行提取,使用整数向量按位置进行提取,或者使用两者的组合使用列表进行提取。有关详细信息,请参阅purrr::pluck()
。在调用
hoist()
时,列名称必须是唯一的,但现有的同名列将被覆盖。当使用单个字符串拨弦时,您可以选择省略名称,即hoist(df, col, "x")
是hoist(df, col, x = "x")
的简写。 - .remove
-
如果是
TRUE
(默认情况下)将从.col
中删除提取的组件。这确保了每个值只存在于一个地方。如果从.col
中删除所有组件,则.col
将从结果中完全删除。 - .simplify
-
如果是
TRUE
,将尝试将长度为 1 的向量列表简化为原子向量。也可以是包含TRUE
或FALSE
的命名列表,声明是否尝试简化特定列。如果提供了命名列表,则任何未指定列的默认值是TRUE
。 - .ptype
-
(可选)原型的命名列表,声明每个组件所需的输出类型。或者,可以提供一个空原型,它将应用于所有组件。如果您想检查每个元素是否具有您在简化时期望的类型,请使用此参数。
如果已指定
ptype
,但无法进行simplify = FALSE
或简化,则将返回 list-of 列,并且每个元素的类型为ptype
。 - .transform
-
(可选)应用于每个组件的转换函数的命名列表。或者,可以提供单个函数,该函数将应用于所有组件。如果您想在提取单个元素时对其进行转换或解析,请使用此参数。
当同时提供
ptype
和transform
时,transform
在ptype
之前应用。
也可以看看
其他矩形:unnest_longer()
、unnest_wider()
、unnest()
例子
df <- tibble(
character = c("Toothless", "Dory"),
metadata = list(
list(
species = "dragon",
color = "black",
films = c(
"How to Train Your Dragon",
"How to Train Your Dragon 2",
"How to Train Your Dragon: The Hidden World"
)
),
list(
species = "blue tang",
color = "blue",
films = c("Finding Nemo", "Finding Dory")
)
)
)
df
#> # A tibble: 2 × 2
#> character metadata
#> <chr> <list>
#> 1 Toothless <named list [3]>
#> 2 Dory <named list [3]>
# Extract only specified components
df %>% hoist(metadata,
"species",
first_film = list("films", 1L),
third_film = list("films", 3L)
)
#> # A tibble: 2 × 5
#> character species first_film third_film metadata
#> <chr> <chr> <chr> <chr> <list>
#> 1 Toothless dragon How to Train Your Dragon How to Train … <named list>
#> 2 Dory blue tang Finding Nemo NA <named list>
相关用法
- R tidyr separate_rows 将折叠的列分成多行
- R tidyr extract 使用正则表达式组将字符列提取为多列
- R tidyr chop 砍伐和砍伐
- R tidyr pivot_longer_spec 使用规范将数据从宽转为长
- R tidyr unnest_longer 将列表列取消嵌套到行中
- R tidyr uncount “计数” DataFrame
- R tidyr cms_patient_experience 来自医疗保险和医疗补助服务中心的数据
- R tidyr pivot_wider_spec 使用规范将数据从长轴转向宽轴
- R tidyr replace_na 将 NA 替换为指定值
- R tidyr unnest_wider 将列表列取消嵌套到列中
- R tidyr full_seq 在向量中创建完整的值序列
- R tidyr nest 将行嵌套到 DataFrame 的列表列中
- R tidyr separate 使用正则表达式或数字位置将字符列分成多列
- R tidyr pivot_wider 将数据从长轴转向宽轴
- R tidyr nest_legacy Nest() 和 unnest() 的旧版本
- R tidyr separate_longer_delim 将字符串拆分为行
- R tidyr gather 将列收集到键值对中
- R tidyr pivot_longer 将数据从宽转为长
- R tidyr pack 打包和拆包
- R tidyr separate_wider_delim 将字符串拆分为列
- R tidyr drop_na 删除包含缺失值的行
- R tidyr fill 用上一个或下一个值填充缺失值
- R tidyr tidyr_legacy 旧名称修复
- R tidyr complete 完成缺少数据组合的 DataFrame
- R tidyr expand 扩展 DataFrame 以包含所有可能的值组合
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Hoist values out of list-columns。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。