R разделить строку на основе условий

#r

#r

Вопрос:

Я хотел бы разделить следующую строку

 c1 <- c("10033  EXPLOITATION 16 0034 SODIRIB 16")
  

на два столбца на основе условия

Если после и перед пробелом следует разделение строки.

Здесь я хотел бы получить следующее разделение :

 A1                                     A2
"10033 EXPLOITATION 16"                "0034 SODIRIB 16"   
  

Я попробовал следующий код :

 res <- strsplit(c1, "[0-9]\s{2,}[0-9]")
  

Комментарии:

1. Не совсем понимаю логику разделения. Вы сказали разделить, когда «за пробелом следует и предшествует …», но почему вы разделяете пробел после «16», а не другие пробелы? Вы имели в виду сказать разделить на пробел, когда «за ним и перед ним стоит цифра»?

2. Привет, спасибо за ваш ответ. Да, я имею в виду «Разделить на пробел, когда «следует за цифрой и предшествует ей»

Ответ №1:

Мы могли бы использовать folowwing. Это предполагает, что числа, следующие за пробелом, не имеют длины 2.

 strsplit(c1,"\s(?=[0-9]{3,})",perl=T)
[[1]]
[1] "10033  EXPLOITATION 16" "0034 SODIRIB 16"