Я хотел бы разделить ряд строк на третьем пробеле справа. Количество строк пробелов варьируется между строками, но каждая строка имеет по крайней мере три пробела. Вот две примерные строки.Сплит-строки на третьем пробеле справа
strings <- c('abca eagh ijkl mnop', 'dd1 ss j, ll bb aa')
Я хотел бы:
[1] 'abca', 'eagh ijkl mnop'
[2] 'dd1 ss j,', 'll bb aa'
Ближайший я смог прийти в:
strsplit(strings, split = "(?<=\\S)(?=\\s(.*)\\s(.*)\\s(.*)$)", perl = TRUE)
, которая возвращает:
[[1]]
[1] "abca" " eagh" " ijkl mnop"
[[2]]
[1] "dd1" " ss" " j," " ll bb aa"
Я продолжаю думать ответ должно быть примерно так:
strsplit(strings, split = "(?<=\\S\\s(.*)\\s(.*)\\s(.*)$)(?=\\s(.*)\\s(.*)\\s(.*)$)", perl = TRUE)
Однако, это возвращает ошибку. Спасибо за любой совет. Я предпочитаю решение в базе, надеюсь, тот, который использует регулярные выражения.
Можете ли вы отменить свою строку, а затем разделить инвертированную строку на третьем белом поле слева (может быть, проще!), А затем перевернуть каждую подстроку? – Theox
Не должен ли первый пример 'abca eagh {SPACE} {SPACE} {SPACE} ijkl {SPACE} mnop' дать вам' 'abca eagh ',' ijkl mnop'', исходя из ваших требований? – JonM
@JonM Возможно, я неправильно использую термин «пустое пространство». Извини за это. Я включил строки и желаемые результаты. –