R разбивает текстовый столбец на основе второго вхождения разделителя - PullRequest
1 голос
/ 07 мая 2020

У меня есть следующий фрейм данных с одним столбцом:

Column
XXX_513_TEXT
XXX_513
XXX_493_TEXT
XXX_493
XXX_589

, который я хочу разделить на 2 столбца, показанные ниже:

Column1     Column2
XXX_513     TEXT
XXX_513      
XXX_493     TEXT
XXX_493     
XXX_589     

Я пробовал следующее seperate() из пакета tidyr, но разделение выполняется на первом _ после XXX.

 separate(DataFrame, Column, c("Column1","Column2"), sep = "_")

Как я могу указать, что я хочу разделить на второе вхождение _, если существует, и, следовательно, достичь желаемого результата?

1 Ответ

1 голос
/ 07 мая 2020

Используйте _, только если им предшествует число:

separate(df, column, into = c("a", "b"), sep = "(?<=[0-9])_")
        a    b
1 XXX_513 TEXT
2 XXX_513 <NA>
3 XXX_493 TEXT
4 XXX_493 <NA>
5 XXX_589 <NA>
...