Предполагая, что text
находится в форме, показанной в примечании в конце, то есть вектор символов с одним компонентом на строку, мы можем использовать read.table
read.table(text = gsub(" +", ",", text), sep = ",", as.is = TRUE)
, давая эти data.frame:
V1 V2 V3
1 First Name: 00:03 Welcome Back text text text
2 First Name 2: 00:54 Text Text Text
3 First Name 3: 01:24 Text Text Text
Примечание
Lines <- "First Name: 00:03 Welcome Back text text text
First Name 2: 00:54 Text Text Text
First Name 3: 01:24 Text Text Text"
text <- readLines(textConnection(Lines))
Обновление
В отношении EDIT, добавленного к вопросу, определите регулярное выражение pat
, соответствующее возможному пробелу, 2 цифры, двоеточие, 2 цифры и, возможно, больше пробелов.Затем grep
вычеркните все строки, которые соответствуют ему, давая tt
, и в каждой оставленной строке замените совпадение @, шаблоном (кроме пробелов) и @, указав g
.Наконец, прочитайте его, используя @ в качестве разделителя полей, давая DF
.
pat <- "\\s*(\\d\\d:\\d\\d)\\s*"
tt <- grep(pat, text$alltext, value = TRUE)
g <- sub(pat, "@\\1@", tt)
DF <- read.table(text = g, sep = "@", quote = "", as.is = TRUE)