Ich habe 2 Datensätze; eine enthält Informationen über Patienten und die andere ist eine Liste von medizinischen CodesSuche nach übereinstimmenden Zeichenketten in 2 Datensätzen in R
patient <- data.table(ID = rep(1:5, each = 3),
codes = c("13H42", "1B1U", "Eu410", "Je450", "Fg65", "Eu411", "Eu402", "B110", "Eu410", "Eu50",
"1B1U", "Eu513", "Eu531", "Eu411", "Eu608")
)
code <- data.table(codes = c("BG689", "13H42", "BG689", "Ju34K", "Eu402", "Eu410", "Eu50", "JE541", "1B1U",
"Eu411", "Fg605", "GT6TU"),
term = c(NA))
Die code$term
Werte hat, aber für dieses Beispiel sind sie weggelassen.
Was ich will ist eine Anzeigesäule in patient
, die 1 zeigt, wenn ein Code in code
in patient$codes
auftritt.
patient
ID codes mh
1: 1 13H42 TRUE
2: 1 1B1U TRUE
3: 1 Eu410 TRUE
4: 2 Je450 FALSE
5: 2 Fg65 FALSE
6: 2 Eu411 TRUE
7: 3 Eu402 TRUE
8: 3 B110 FALSE
9: 3 Eu410 TRUE
10: 4 Eu50 TRUE
11: 4 1B1U TRUE
12: 4 Eu513 FALSE
13: 5 Eu531 FALSE
14: 5 Eu411 TRUE
15: 5 Eu608 FALSE
war meine Lösung Grepl zu verwenden:
patient$mh <- mapply(grepl, pattern=code$codes, x=patient$codes)
aber dies nicht als code
funktionierte nicht die gleiche Länge ist, und ich habe die Warnung
Warning message:
In mapply(grepl, pattern = code$codes, x = patient$codes) :
longer argument not a multiple of length of shorter
Alle Lösungen für eine genaue Übereinstimmung?
Wollen Sie genau übereinstimmen? –
@Kunal Puri Ja – Lb93
Sind Sie sicher, dass Ihre erwartete Ausgabe korrekt ist? Denke, du kannst einfach 'patient $ mh <- patient $ codes% in% code $ codes' machen – mtoto