R 中的解析列 - 删除定界符

Parse Column in R - Removing Delimitor

我有如下数据集:

Col2      Col4    Col5     Col6
  A     dfjk::      6         9
  B     DJE|end    92       133
  C     nedl5      13        12

如何通过分隔符 | 解析出第二列?

最终预期输出:

Col2      Col4    NEW    Col5     Col6
  A     dfjk::     NA       6         9
  B        DJE    end      92       133
  C     nedl5      NA      13        12

一种选择是使用 tidyr::separate

library(tidyverse)
df %>% separate(Col4, c("Col4", "NEW"), sep = "\|", fill = "right")
#  Col2   Col4  NEW Col5 Col6
#1    A dfjk:: <NA>    6    9
#2    B    DJE  end   92  133
#3    C  nedl5 <NA>   13   12

示例数据

df <- read.table(text =
"Col2      Col4    Col5     Col6
  A     dfjk::      6         9
  B     DJE|end    92       133
  C     nedl5      13        12", header = T)

一个非常方便的可能性是使用 cSplit() from splitstackshape:

cSplit(df, "Col4", "|")

   Col2 Col5 Col6 Col4_1 Col4_2
1:    A    6    9 dfjk::   <NA>
2:    B   92  133    DJE    end
3:    C   13   12  nedl5   <NA>