如何在 tidyverse 数据框中使用 strplit

how to use strplit in tidyverse dataframe

我在 R 中有一个包含多列的数据框。在一列中,我想使用 strsplit 提取部分字符串并将其放入另一列中。我有一个数据框,其中包含一个名为 IDName 的列,IDName 具有以下格式的字符串:

1-John
2-Tom

我想拆分字符串并将 ID 放在自己的列中,将名称放在自己的列中

InputDF%>% mutate(ID=strsplit(IDName, "-"))-> OutputDF

这并没有将ID放在ID列中,而是一个列表,如何使用上面的代码提取ID和Name?

我试过这个:

  InputDF%>%  mutate(ID=strsplit(IDName, "-")[[0]])-> OutputDF

但是我遇到了错误。

最好的方法是什么?

我们可以使用 tidyr 包中的 separate 函数:

library(dplyr)
library(tidyr)

df %>% 
  separate(x, c("ID", "name"), sep = '-')

输出:

  ID    name 
  <chr> <chr>
1 1     John 
2 2     Tom  

数据:

df <- tribble(
  ~x,
"1-John",
"2-Tom")