df1$Admission_Type[grepl("inpatient", df1$Admission_Type, ignore.case=TRUE)] = "ip"
deckt die Fälle, die Sie aufgelistet haben. @ JohnSGs Antwort zeigt, wie auch mögliche Rechtschreibfehler in den regulären Ausdruck einbezogen werden können. (Sie sollten wahrscheinlich eine neue Spalte erstellen, um Ihre Aufzeichnungen zu speichern (zumindest während Sie verschiedene Optionen testen), anstatt die ursprüngliche Datenspalte zu überschreiben.)
Als @alistaire erwähnt, können Sie agrep
verwenden für ungefähre Übereinstimmung. Zum Beispiel:
x = c("inpatient","Inpatient","Impatient","inpateint")
agrep("inpatient", x, max.dist=2, ignore.case=TRUE)
Also, in Ihrem Fall könnten Sie tun:
df1$Admission_Type[agrep("inpatient", df1$aAdmisstion_Type, max.dist=2, ignore.case=TRUE)] = "ip"
agrep
geben die Indizes des Anpassungswertes. max.dist
steuert, wie unterschiedlich die tatsächlichen Werte vom Zielwert sein können und dennoch als Übereinstimmung betrachtet werden. Sie müssen dies wahrscheinlich testen und optimieren, um Fehlbuchungen zu erfassen und falsche Übereinstimmungen zu vermeiden.
grepl
deckt die Fälle, die Sie in Ihren Fragen aufgelistet, sondern auch für die Zukunft, wenn Sie jemals auf einer Anzahl von separaten Werten übereinstimmen müssen, können Sie die Menge an Code mithilfe der %in%
Funktion benötigt reduzieren. In Ihrem Fall, dass sein würde:
df1$Admission_Type[df1$Admission_Type %in% c("Inpatient","inpatient","INPATIENT")]<-"ip"
'df $ Admission_Type [Grepl ("stationäre", df1 $ Admission_Type, ignore.case = TRUE)] = "ip"' werden die Fälle decken Sie aufgelistet. Sie können Schecks für häufige Rechtschreibfehler hinzufügen, wenn Sie wissen, was sie sind. – eipi10
Für Rechtschreibfehler siehe 'agrep'. – alistaire