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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。