Как я могу извлечь важную информацию - имя, возраст (болезнь) и вес - из текстового списка и создать новый список данных или фрейм?
test<-c("James is approximately age 25 & 26 weighted 130lbs",
"Angelina is age 40 (Diabetes)",
"Harry Peterson is male with ages 27")
Для этого
Я смог указать имена / и болезнь в скобках.
> sapply(strsplit(test, "\\s+"),"[",1)
[1] "James" "Angelina" "Harry"
> gsub("[\\(\\)]","\\1", regmatches(test, gregexpr("(?<=\\().*?(?=\\))",test, perl=T)))
[1] "character0" "Diabetes" "character0"
ОДНАКО, не удалось установить подмножество 25 и 26 лет, и grep 'ages'
> paste(grep(pattern="age", trimws(strsplit(test, " ")[[1]]), value = TRUE),as.numeric(sub(".*age.
(\\d+).*", "\\1", test[[1]])) )
[1] "age 25"
Как я могу извлечь все число и амперсанд вместе из текста? как "возраст 25 и 26"
Как я могу установить шаблон для возраста, который извлекает возраст и возраст? возраст 27 -> «возраст 27», взвешенный -> «вес 130»
Как я могу получить всю информацию в следующем порядке, вместо имен подмножеств, возрастов, веса и () отдельно?
c("James","age 25 & 26", "weight 130", "Angelina","age 40", "Diabetes", "Harry", "age 27")
и в конечном итоге создайте фрейм данных, как показано ниже
age weight illness
James "25 & 26" "130" NA
Angelina "40" NA "Diabetes"
Harry "27" NA NA
Если вы можете ответить только частично, что также будет полезно. Спасибо.