【发布时间】:2020-10-20 09:00:30
【问题描述】:
我有一个嵌套列表:
data = list(a = list(1, 2, 3), b = list("foo"), c = list("toast", "onions"))
如何将其转换为 data.frame 或 tibble 的单行?我希望将包含多个元素的列表(此处为a 和c)保留为列表,并将单个元素(b)保留为常规值。
预期输出是:
# A tibble: 1 x 3
a b c
<list> <chr> <list>
1 <list [3]> foo <list [2]>
【问题讨论】:
-
tibble::enframe(data) %>% tidyr::pivot_wider()? -
是的,这对我有用 Ronak。谢谢你的帮助。然后将列 b 转换为常规字符列的最佳方法是什么?我试过
... %>% mutate(b = map(b, unlist)),但这不会改变实际的列类型。 -
[Ronak] +
%>% tidyr::unnest(b) %>% tidyr::unnest(b) -
谢谢罗纳克。如果我将
map更改为map_chr也可以使用,即`... %>% mutate(b = map_chr(b, unlist))'。