Как разбить строку на несколько столбцов по заданному шаблону? - PullRequest
1 голос
/ 03 мая 2019

У меня есть текстовые данные, как указано ниже:

\r\n    \r\n        How to get a confirm ticket?\r\n        \r\n            I want to get a tatkal ticket confirm ...

Как извлечь два столбца из этих данных?

Я пробовал str_split_fixed(), которые делятся на четыре столбца, и после этих четырех столбцов можно получить два столбца ... Но я хочу, чтобы прямо сейчас он дал только два столбца.

x <- "\r\n    \r\n        How to get a confirm ticket?\r\n        \r\n            I want to get a tatkal ticket confirm ..."
str_split_fixed(x, "\r\n", 4)
#>      [,1] [,2]   [,3]                                   [,4]                                                               
#> [1,] ""   "    " "        How to get a confirm ticket?" "        \r\n            I want to get a tatkal ticket confirm ..."
str_split_fixed(x, "\r\n", 4)[1, 3]
#> [1] "        How to get a confirm ticket?"

1 Ответ

1 голос
/ 03 мая 2019

Если строки всегда в одном и том же формате, следующее регулярное выражение должно работать хорошо:

library(stringr)
x <- "\r\n    \r\n        How to get a confirm ticket?\r\n        \r\n            I want to get a tatkal ticket confirm ..."
str_split(x, "(\r\n\\s*)+", simplify = TRUE)[, -1, drop = FALSE]
     [,1]                           [,2]                                       
[1,] "How to get a confirm ticket?" "I want to get a tatkal ticket confirm ..."

Если ваши данные на самом деле поступают из таблицы в текстовом файле или с веб-страницы, возможно, есть более удобные варианты.

...