Website-Icon Björn Walther

Daten filtern in R (Fälle filtern)

1 Die Grundidee von Daten filtern

Bei jeder Datenanalyse, so auch in R, kann einen Ausschluss von Daten im Vorfeld notwendig machen. Hierzu werden Fälle aus dem Datensatz gefiltert, die nicht den Einschlusskriterien entsprechen. Oder anders formuliert, es existieren Ausschlusskriterien, die mit einem Filter angewandt werden.

Ein häufig anzutreffender Grund für eine Filterung bzw. die Auswahl nur bestimmter Fälle ist, dass z.B. Ausreißer” ausgeschlossen werden sollen. Ein weiterer Grund ist, dass für eine gewisse Fragestellung nur eine bestimmte Gruppe von Untersuchungsobjekten analysiert werden soll. Das kann z.B. das Geschlecht sein, wo man einen gewissen Zusammenhang nur bei Frauen untersuchen möchte oder man versucht einen bestimmten Zusammenhang nur bei einer gewissen Alterskategorie zu analysieren. Denkbar ist natürlich auch eine Kombination dessen: Frauen in einem gewissen Alter.
Dies kann hilfreich sein, wenn man z.B. eine Regression nur hierfür rechnen will, weil andere Zusammenhänge erwartet werden als auf eine große gemischte Stichprobe.

 

2 Wie filtert man nach bestimmten Fällen in R?

Generell empfehle ich, mit sog. subsets zu arbeiten. Sie sind Teildatensätze des Originaldatensatzes – dieser wird nicht nach dem Import nicht mehr geändert. Es wird aus jenem nur ein neuer Datensatz herausgefiltert.

Achtung, alle Filterbedingungen hängen vom Variablentyp ab. Habt ihr das Geschlecht nur numerisch hinterlegt, wird die Nummer verwendet. Ist es ein Faktor mit Beschriftung, muss die exakte Bezeichnung in Anführungszeichen verwendet werden. In jedem Fall muss ein doppeltes Gleichheitszeichen (==) verwendet werden.

 

2.1 Einfache Filter in R

Zunächst wird ein neuer Data Frame definiert, in welchen die gefilterten Variablen übertragen werden. Wenn ihr nun z.B. nur nach dem Geschlecht (kategoriale Variable) filtern möchtet, wird mit der subset()-Funktion gearbeitet. In sie wird der Ausgangsdatensatz eingegeben und eine (oder mehrere) Filterbedingungen angehängt.


# Numerisch codiertes Geschlecht
data_m <- subset(data, Geschlecht == 0)
# Als Faktor und mit Bezeichnung codiertes Geschlecht
data_m <- subset(data, Geschlecht == "Mann")

Bei numerischen Variablen kann auch eine kleiner- oder größer-Bedingung als Filter verwendet werden. Hier wird z.B. nach Probanden mit einem IQ>100 gefiltert.


data_100iq <- subset(data, IQ>100)

 

2.2 Kombinierte Filter in R – I (UND bei gleichen Variablen)

Eine erste Erweiterung der eben gezeigten Filterung kann sein, dass man eine Variable nach einem bestimmten Bereich filtern möchte. Zum Beispiel sollen nur Probanden mit einem IQ von 101 bis 120 analysiert werden. Hierzu werden zwei einfache Filter schlicht mit dem logischen UND (&) kombiniert:


data_iq_range <- subset(data, IQ>100 & IQ <121)

Achtung: es können auch >= und <= verwendet werden. Möchte man den IQ von einschließlich 100 bis einschließlich 120, würde man IQ>=100 & IQ<=120 oder aber auch IQ>99 & IQ<121 verwenden können.

 

2.3 Kombinierte Filter in R – II (UND bei unterschiedlichen Variablen)

Zusätzlich besteht noch die Möglichkeit, verschiedene Variablen und Bedingungen zu kombinieren. Sollen nur Frauen älter als 30 Jahre untersucht werden, gestaltet sich dies wie folgt:


data_f <- subset(data, Geschlecht == "Frau" & Alter >= 30)

 

2.4 Kombinierte Filter in R – III (ODER bei unterschiedlichen Variablen)

Schließlich können auch verschiedene Variablenausprägungen kombiniert werden. Sollen nur Frauen oder Befragte älter als 30 Jahre untersucht werden, wird das logische ODER (|) verwendet (Tastenkombination: Strg+Alt+<).
Aber Achtung, ODER heißt, dass mindestens eine Bedingung erfüllt sein muss. Es können aber auch beide erfüllt sein.
Im Beispiel würde die Stichprobe umfassen:


data_f <- subset(data, Geschlecht == "Frau" | Alter >= 30)

 

3 Videotutorial

https://www.youtube.com/watch?v=EZFIwbSR7oc

 

Weitere nützliche Tutorials findest du auf meinem YouTube-Kanal.

 

 

Die mobile Version verlassen