Ich habe 3 Datenrahmen. Einer enthält die ganze Reihe von Zahlen. Zweiter und dritter Datenrahmen enthalten Teilmengen dieser Nummern mit einer bestimmten Eigenschaft (Typ 1 oder Typ 2). Was ich tun möchte, ist, diese Datenrahmen zu einem zusammenzufassen, so dass jede Zahl geprüft wird, ob sie ein oder zwei ist.Etikettenwerte, die mit Werten aus anderen Datenrahmen übereinstimmen
Beispiel:
numbers <- c("+333","+334", "+335", "+443", "+444", "+445", "+553", "+554", "+555")
typeone <- c("+333","+334", "+335", "+443")
typetwo <- c("+335", "+443", "+444", "+445")
fs <- data.frame(numbers)
to<- data.frame(typeone)
tt<- data.frame(typetwo)
Gewünschtes Ergebnis nach dem Zusammenführen fs
, to
und tt
:
numbers typeone typetwo
1 333 yes
2 334 yes
3 335 yes yes
4 443 yes yes
5 444 yes
6 445 yes
7 553
8 554
9 555
Vielleicht: 'data.frame (Zahlen = Zahlen, typeone = ifelse (Zahlen % in% typeone, "ja", ""), typewo = ifelse (Zahlen% in% typezwei, "ja", "")) ' –
Ja, es ist die einfachste Lösung, aber ich sehe keine Vorteile zu verwenden Binärzeichenfolge über logisch. Also habe ich es dem OP überlassen. –
@AndreyKolyadin Sie haben Recht, und dies wird auch einfacher für den Benutzer zu Subset (in benötigt) oder indizieren Sie es später, ohne es wieder in logisch zu konvertieren, wenn Sie durch die "Ja", "" Route wie von jemandem vorgeschlagen. Außerdem kann die Verwendung von 'ifelse' den Prozess unnötig verlangsamen. – akrun