У меня есть два кадра данных переменных, один из которых является вектором символов. Каждая строка в «MyVector» содержит строку с одним именем (например, «Пит»). Имя может отличаться по своему положению в строке символов. Я хочу создать код, который будет сопоставлять имя в списке с именем в строке символов и извлекать это имя в новую переменную во фрейме данных. Если бы имя всегда находилось в одной и той же позиции в векторе MyVector, я бы создал новую переменную как подстроку MyVector, вытащив имя в новый столбец. Я пробовал различные версии str_detect от Stringr, но безрезультатно.
Задача: как определить или извлечь имя в новую переменную и поместить ее в MyDF, если имя находится в нескольких позициях?
#Create the data frame
var.1 <-rep(c(1,5,3),2)
MyVector <- c("I know Pete", "Jerry has a new job","Victor is an employee","How to work with Pete","Too Many Students","Bob is mean")
MyDF <-as.data.frame(cbind(var.1,MyVector))
#Create a vector of a list of names I want to extract into a new column in the dataframe.
Extract <- c("Jerry","Pete", "Bob", "Victor")
#Match would be perfect if I could use it on character vectors
MyDF$newvar <-match(MyDF$MyVector,Extract)
Мой последний файл data.frame должен выглядеть примерно так, как показано ниже.
var.1 MyVector NEWVAR
1 1 Don knows Pete Pete
2 5 Jerry has a new job Jerry
3 3 Victor and Bob are employees Victor
4 1 How to work with Pete Pete
5 5 Too Many Students NA
6 3 Bob is mean Bob