Hallo R-Community,
ich arbeite erst seit Kurzem mit R und hoffe hier Hilf für ein Problem zu bekommen an dem ich gerade hänge...
Also: Ich habe zwei Datensätze (in der Darstellung "Liste 1" und Liste 2") und möchte alle Zeilen aus "Liste 2" die eine Nummer aus "Liste 1" aufweisen in einem neuen Datensatz abspeichern (in "Liste 3"). Die Datensätze sind durch eine Verknüpfungsvariable (hier: Nr. --> gelb) verbindbar. Während in der "Liste 1" jede Nummer nur einmalig vorkommt, können in "Liste 2" mehrere Zeilen der selben Nummer zugewiesen sein.
Die einzige Lösung die mir dazu einfällt wäre eine for-Schleife die systematisch jedes Element der "Liste 1" abgeht und in jedem Schritt die Elemente von "Liste 2" nach diesem Kriterium filtert und in einer neuen Liste ablegt. Ist die for-schleife durch alle Elemente der "Liste 1" durch könnte man die so extrahierten Zeilen aus der "Liste 2" wieder in einem Datensatz (in meinem Fall wäre das "Liste 3") zusammensetzen bzw. verbinden.
Das Problem hier ist, dass es imo einerseits keine wirklich elegante Lösung ist und es sich andererseits um einen umfangreichen Datensatz handelt. Das ganze mit einer for-Schleife zu lösen dauert lange und benötigt viel Rechenkraft. Ich muss auf diese Weise mehrere Datensätze verbinden, daher brauche ich hier eine möglichst effiziente Lösung.
Ich habe auch schon versucht "Liste 2" nach einem Vektor, der alle Elemente der "Liste 1" enthält zu filtern (nach dieser Überlegung: Liste3 <- Liste2[Liste2$Nr == Liste1$Nr,]). Leider ohne Erfolg. Ich hoffe ihr könnt mir weiterhelfen.
Datensatz nach mehreren Elementen einer Liste filtern
Re: Datensatz nach mehreren Elementen einer Liste filtern
Wow das ging schnell. Danke, hat funktioniert und so einfach. War ich nicht völlig am Holzweg mit dem Filter.
Re: Datensatz nach mehreren Elementen einer Liste filtern
als etwas größere Geschütze stehen subset() und merge() zur Verfügung.