以下是来自" R for Data Science"的简单示例:
df <- tribble(
~x1,
"a,b,c",
"d,e,f,g"
)
现在我可以像这样创建一个列表列:
df <- df %>%
mutate(x2 = stringr::str_split(x1, ","))
现在数据如下所示:
# A tibble: 2 × 2
x1 x2
<chr> <list>
1 a,b,c <chr [3]>
2 d,e,f,g <chr [4]>
这是一个问题:如果我只有x2,我该如何从中恢复x1?
unnest()
不起作用,因为它会更改数据的形状。
答案 0 :(得分:5)
尝试
df %>%
mutate(x1_new = map_chr(x2, paste, collapse = ','))
(我假设您已经加载了包purrr
,因为您已经提到tidyverse
)
答案 1 :(得分:2)
非常好。此外,在tidyverse内:
df <- df %>%
mutate(x3 = map_chr(x2, stringr::str_c, collapse = ','))
df
也有效。