Мы можем использовать extract
для захвата символов в группу. Здесь мы указываем шаблон для соответствия одному или нескольким символам, которые не являются ди git ([^0-9]+
) от начала строки (^
), захватывается как группа ((...)
), за которой следуют цифры как вторая группа и не захватывать остальные символы (.*
)
library(dplyr)
library(tidyr)
df1 %>%
extract(name_and_age, into = c('name', 'age'),
'^([^0-9]+)(\\d+).*', convert = TRUE)
# name age
#1 Wesley Wycombe 27
#2 Sally Atkinson 33
#3 Matthew Lee 42
data
df1 <- structure(list(name_and_age = c("Wesley Wycombe27 y.o.",
"Sally Atkinson33 y.o.",
"Matthew Lee42 y.o.")),
class = "data.frame", row.names = c(NA,
-3L))