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

时间:2019-02-26 21:53:10

标签: r gsub

我有一个如下的数据集:

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

2 个答案:

答案 0 :(得分:1)

一种选择是使用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)

答案 1 :(得分:0)

使用cSplit()中的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>