这里是《R数据科学》中的一个简单示例:
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()
不能使用,因为它会改变数据的形状。
sapply(df$x2, toString)
将列表中的向量粘贴在一起,以获取字符串。 - Psidomdf <- df %>% mutate(x3 = map_chr(x2, toString))
它会产生以下结果:# A tibble: 2 × 3 x1 x2 x3
1 a,b,c a, b, c
2 d,e,f,g d, e, f, g
很好! - Shige Song