Я хотел бы разделить серию строк на третьем белом пространстве справа. Количество пробелов варьируется в зависимости от строки, но каждая строка имеет не менее трех пробелов. Вот два примера строк.
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)
Однако это возвращает ошибку. Спасибо за любой совет. Я предпочитаю базовое решение, надеюсь, такое, которое использует регулярные выражения.
abca eagh{SPACE}{SPACE}{SPACE}ijkl{SPACE}mnop
не должен давать вам'abca eagh',' ijkl mnop'
в зависимости от ваших требований? - person JonM   schedule 20.02.2014