Parse Column in R - Удаление разделителя - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть набор данных, как показано ниже:

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

Как мне разобрать 2-й столбец по разделителю |?

Окончательный ожидаемый результат:

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

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Очень удобная возможность - использовать 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>
0 голосов
/ 27 февраля 2019

Один из вариантов - использовать 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)
...