在分隔符处分割字符串并创建新的数据框

时间:2019-12-24 20:12:06

标签: r

这似乎是一个基本问题,所以请随时为我指出另一个答案,但我无法通过搜索找到答案。

我有一组180,000行,看起来像这样:

df <- c("12hfgog|hcsg9ws|xaw_07cas", "fhjf79", "8xxghk")

我想在定界符“ |”处分割字符串并使用如下结果创建一个新的数据框:

df2 <- c("12hfgog","hcsg9ws", "xaw_07cas", "fhjf79", "8xxghk")

我知道它涉及strsplit,unlist和unnest的某种组合,但我不能完全正确。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

我的建议是使用sapply和strsplit。以后只将结果列表转换为带有unlist的向量。

df1 <- c("12hfgog|hcsg9ws|xaw_07cas", "fhjf79", "8xxghk")
df2 <- unlist(sapply(df1, strsplit, split = "\\|", USE.NAMES = FALSE))

致谢。

答案 1 :(得分:0)

我们可以使用separate_rows

library(tidyr)
df %>% 
   separate_rows(colname)