Я хотел бы создать новую переменную (cPI) на основе формата существующей переменной (PI_NAMEs). PI_NAMEs содержит комбинацию одного имени и нескольких имен. Когда присутствует несколько имен, одно из них выделяется как «контакт», но место, где контакт отображается в полном списке нескольких имен, варьируется. Когда есть несколько имен, я знаю, что имя контакта для контакта содержится между ';' и «(контакт)». Когда существует только одно имя, это имя считается контактом.
Я использую пакеты dplyr и stringr и не могу выполнить следующий код для правильной работы.
Также ниже приведены несколько строк переменной PI_NAMEs. Спасибо за любые предложения.
НЕСКОЛЬКО ДАННЫХ
[950] MILLER, TIMOTHY A;
[951] DOULATOV, SERGEI; > [952] ПОЛЯ, НОЭЛЛА (контакт); XU, LING;
[953] LEE, SHOOU-YIH DANIEL;
[954] JAKOBS, THOMAS;
[955] MIWA, JUL IE M .; УИТИК, ПОЛ (контакт);
[956] ГЕЙН SH, САНТИ К;
[957] ВОНДРИСКА, ТОМАС М.;
[958] ШАПИРО, ЛОУРЕНС S;
[959] APPLING, ANTHONY;
[960] ЧЭН, РОГ H;
[961] MCNAMARA, ДЖЕЙМС О.;.
[962] ГОСУДАРСТВА, J КРИСТОФЕР;
[963] БОННЕ, РИЧАРД А; КРИСТИАН, ЛИОНЕЛЬ (контакт); SATIJA, RAHUL;
[964] SUBRAMANIAN, NAEHA;
[965] LEONG, DANIEL J (контакт); SUN, HUI BIN;
[966] ФЕРНАНДЕС-ЛИМА, ФРАНЦИСКО;
[967] СЕРЫЙ, БРИАН ДАВИД; Лю, Жонглин (контакт);
NEW_GRANT <- mutate(NEW_GRANT, cPI = ifelse(str_detect(as.character(NEW_GRANT$PI_NAMEs), pattern="(contact)"), str_extract(string=as.character(NEW_GRANT$PI_NAMEs), pattern = "(?<=;).*?=(contact)"), str_extract(string=as.character(NEW_GRANT$PI_NAMEs))))
Ошибка: ошибка оценки: отсутствует аргумент "шаблон", без значения по умолчанию.