1) Предполагая, что в конце кадра входных данных, показанного в примечании, передается шаблон, соответствующий цифрам, не цифрам, цифрам, не цифрам и цифрам, в read.pattern, который будет выделять захватгруппирует в поля:
library(gsubfn)
pat <- "(\\d+)(\\D+)(\\d+)(\\D+)(\\d+)"
read.pattern(text = DF$x, pattern = pat, colClasses = "character")
, давая:
V1 V2 V3 V4 V5
1 1 A 02 B 1
Возможно, вам придется пропустить или изменить аргумент colClasses
в зависимости от того, что вы хотите.
2) Альтернативно, strsplit
может использоваться для создания этой матрицы:
do.call("rbind", strsplit(DF$x, "(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)", perl = TRUE))
## [,1] [,2] [,3] [,4] [,5]
## [1,] "1" "A" "02" "B" "1"
Примечание
DF <- data.frame(x = "1A02B1", stringsAsFactors = FALSE)