Website-Icon Björn Walther

Dichotomisieren in R

Dichotomisierung allgemein

Dichotomisieren bedeutet, dass eine Variable (typischerweise metrisch und ordinal) transformiert wird. Nach der Transformation hat sie nur noch zwei Ausprägungen. Zum Beispiel „ja“ oder „nein“, 1 oder 0 und so weiter.

 

Dichotomisieren in R mit der ifelse()-Funktion

Für die Dichotomisierung verwende ich die sogenannte ifelse()-Funktion.
Wenn eine beliebige Bedingung zutrifft, wird eine neue Variable die Ausprägung z.B. 0 bekommen. Ist dies nicht der Fall, bekommt die neue Variable die Ausprägung 1.
Die Prüfbedingung ist eine beliebige Festsetzung eines Trennwertes. Am Beispiel des BMI wäre dieser Trennwert 25 – er trennt Normalgewicht und Übergewicht (vgl. Wikipedia).

 

Ziffernbezeichner

Ich erstelle in meinem Dataframe „data“ eine neue Variable namens „uebergewicht“ und verwende die ifelse()-Funktion für den BMI (data$BMI). Ab einem BMI von 25 (>=25) ist die Person übergewichtig. Der Variable wird dann die Ausprägung 1 zugewiesen. Bei einem BMI kleiner 25 (kein Übergewicht vor. Die Variable bekommt die Ausprägung 1 zugewiesen.

ACHTUNG: Hier muss man gut aufpassen, ob man „“ oder „>=“ wählt, also ob der Trennwert mit eingeschlossen werden soll, oder nicht.


data$uebergewicht = 25, 1, 0)

 

Wörter als Bezeichner

Das Vorgehen ist hier analog. Ich weise einer vorher definierten Variable Ausprägungen zu. Allerdings sind es diesmal Wörter, z.B. eben „Ja“ und „Nein“. Wichtig ist hierbei, dass die Wörter in Anführungszeichen geschrieben werden.


data$uebergewicht = 25, "Ja", "Nein")

 

Abschließend empfiehlt sich eine Faktorisierung dieser Variable. Bisher ist sie als „Character“, also als Wort hinterlegt. Gewisse statistische Auswertungen verlangen aber Numerische Werte oder eben Faktoren.


data$uebergewicht 

 

Mit dem sjmisc()-Paket und der dicho()-Funktion

Nach der Installation des sjmisc()-Paketes mit install.packages("sjmisc") und dem Laden dessen mit library(sjmisc), verwendet man die dicho()-Funktion. Hier gibt man lediglich die zu dichotomisierende Variable an und weist sie einer neuen Variable zu (hier "uebergewicht" im Dataframe "data").

Das Argument dich.by= ist entscheidend. Hier ist entsprechend der Wert einzusetzen, anhand dessen dichotomisiert wird.

Erneut setze ich hier 25 ein. Die Funktion setzt die Ausprägung der neuen Variable data$uebergewicht bei Werten kleiner oder gleich 25 auf 0, und entsprechend auf 1, wenn die Werte über 25 sind.
Eine Faktorisierung wird von der Funktion dicho() automatisch vorgenommen.


install.packages("sjmisc")
library(sjmisc)
data$uebergewicht

 

Videotutorial

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

 

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

 

 

Die mobile Version verlassen