У меня есть такой текст:
inputString<- “Patient Name:MRS Comfor Atest Date of Birth:23/02/1981 Hospital Number:000000 Date of Procedure:01/01/2010 Endoscopist:Dr. Sebastian Zeki: Nurses:Anthony Nurse , Medications:Medication A 50 mcg, Another drug 2.5 mg Instrument:D111 Extent of Exam:second part of duodenum Visualization:Good Tolerance: Good Complications: None Co-morbidity:None INDICATIONS FOR EXAMINATION Illness Stomach pain. PROCEDURE PERFORMED Gastroscopy (OGD) FINDINGS Things found and biopsied DIAGNOSIS Biopsy of various RECOMMENDATIONS Chase for histology. FOLLOW UP Return Home"
Я хочу извлечь части теста в их собственные столбцы в соответствии с некоторыми текстовыми границами, которые я установил:
myWords<-c("Patient Name","Date of Birth","Hospital Number","Date of Procedure","Endoscopist","Second Endoscopist","Trainee","Referring Physician","Nurses"."Medications")
Не все слова-разделители есть в тексте (но они всегда в одном и том же порядке).
У меня есть функция, которая должна отделять их (с заголовком столбца в качестве начала границы слова:
delim<-myWords
inputStringdf <- data.frame(inputString,stringsAsFactors = FALSE)
inputStringdf <- inputStringdf %>%
tidyr::separate(inputString, into = c("added_name",delim),
sep = paste(delim, collapse = "|"),
extra = "drop", fill = "right")
Однако, если между двумя разделителями не найдено или если разделители не существуют, вместо того, чтобы поместить NA в столбец, он просто заполняет его следующим текстом, найденным между двумя разделителями. Как я могу убедиться, что правильные столбцы заполнены правильным текстом, определенным разделителями?