gpt4 book ai didi

r - 如何将具有不同数据类型的嵌套列表转换为数据框?

转载 作者:行者123 更新时间:2023-12-04 01:07:56 24 4
gpt4 key购买 nike

我有一个包含不同类型的嵌套元素的列表

library(tidyverse)

# list to be transfomed into a dataframe/tibble
mylist <-
list(
lois = list(
hair = list(color = "orange", form = "flat"),
sex = "female"
)
)

# structure
str(mylist)
#> List of 1
#> $ lois:List of 2
#> ..$ hair:List of 2
#> .. ..$ color: chr "orange"
#> .. ..$ form : chr "flat"
#> ..$ sex : chr "female"

目标是将此列表转换为数据框/tibble。期望的输出是

# A tibble: 3 x 4
name value_id attribute text
<chr> <chr> <chr> <chr>
1 lois hair color orange
2 lois hair form flat
3 lois sex NA female

我尝试了 tidyr::unnest_longer()。但是很难取消嵌套,因为 value 列中有不同的类型:

# unnest_longer does not work like this
mylist %>%
enframe() %>%
unnest_longer(col = value) %>%
unnest_longer(col = value)
#> Error: Can't combine `..1$value` <list> and `..2$value` <character>.

reprex package 创建于 2021-01-13 (v0.3.0)

这个问题有什么好的解决方案?

最佳答案

一种选择是使用rrapply 库:

rrapply(mylist, how = "melt")

L1 L2 L3 value
1 lois hair color orange
2 lois hair form flat
3 lois sex <NA> female

关于r - 如何将具有不同数据类型的嵌套列表转换为数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65698926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com