3

这是“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()不起作用,因为它改变了数据的形状。

4

2 回答 2

5

尝试

df %>% 
  mutate(x1_new = map_chr(x2, paste, collapse = ','))

(我假设你已经加载了包purrr,因为你已经提到了tidyverse

于 2016-12-28T16:21:42.080 回答
2

Very nice. Also, within the tidyverse:

df <- df %>% 
  mutate(x3 = map_chr(x2, stringr::str_c, collapse = ','))
df

also works.

于 2016-12-28T16:32:20.430 回答