So erstellen sie kategoriale variablen in r (mit beispielen)


Sie können die folgende Syntax verwenden, um eine kategoriale Variable in R zu erstellen:

 #create categorical variable from scratch
cat_variable <- factor(c(' A ', ' B ', ' C ', ' D '))

#create categorical variable (with two possible values) from existing variable
cat_variable <- as. factor ( ifelse (existing_variable < 4, 1, 0))

#create categorical variable (with multiple possible values) from existing variable
cat_variable <- as. factor ( ifelse (existing_variable < 3, ' A ',
                          ifelse (existing_variable < 4, ' B ', 
                          ifelse (existing_variable < 5, ' C ', 
                          ifelse (existing_variable < 6, ' D ',0)))))

Die folgenden Beispiele zeigen, wie Sie diese Syntax in der Praxis anwenden können.

Beispiel 1: Erstellen Sie eine kategoriale Variable von Grund auf

Der folgende Code zeigt, wie Sie eine kategoriale Variable von Grund auf erstellen:

 #create data frame
df <- data. frame (var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 10, 12),
                 var4=c(14, 16, 22, 19, 18))

#view data frame
df

var1 var2 var3 var4
1 1 7 3 14
2 3 7 3 16
3 3 8 6 22
4 4 3 10 19
5 5 2 12 18

#add categorical variable named 'type' to data frame
df$type <- factor(c(' A ', ' B ', ' B ', ' C ', ' D '))

#view updated data frame
df

var1 var2 var3 var4 type
1 1 7 3 14 A
2 3 7 3 16 B
3 3 8 6 22 B
4 4 3 10 19 C
5 5 2 12 18 D

Beispiel 2: Erstellen Sie eine kategoriale Variable (mit zwei Werten) aus einer vorhandenen Variablen

Der folgende Code zeigt, wie eine kategoriale Variable aus einer vorhandenen Variablen in einem Datenrahmen erstellt wird:

 #create data frame
df <- data. frame (var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 10, 12),
                 var4=c(14, 16, 22, 19, 18))

#view data frame
df

var1 var2 var3 var4
1 1 7 3 14
2 3 7 3 16
3 3 8 6 22
4 4 3 10 19
5 5 2 12 18

#add categorical variable named 'type' using values from 'var4' column
df$type <- as. factor ( ifelse (df$var1 < 4, 1, 0))

#view updated data frame
df

var1 var2 var3 var4 type
1 1 7 3 14 1
2 3 7 3 16 1
3 3 8 6 22 1
4 4 3 10 19 0
5 5 2 12 18 0

Mit der ifelse() -Anweisung haben wir eine neue kategoriale Variable namens „type“ erstellt, die die folgenden Werte annimmt:

  • 1 , wenn der Wert der Spalte „var1“ kleiner als 4 ist.
  • 0 , wenn der Wert in Spalte „var1“ nicht kleiner als 4 ist.

Beispiel 3: Erstellen Sie eine kategoriale Variable (mit mehreren Werten) aus einer vorhandenen Variablen

Der folgende Code zeigt, wie man aus einer vorhandenen Variablen in einem Datenrahmen eine kategoriale Variable (mit mehreren Werten) erstellt:

 #create data frame
df <- data. frame (var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 10, 12),
                 var4=c(14, 16, 22, 19, 18))

#view data frame
df

var1 var2 var3 var4
1 1 7 3 14
2 3 7 3 16
3 3 8 6 22
4 4 3 10 19
5 5 2 12 18

#add categorical variable named 'type' using values from 'var4' column
df$type <- as. factor ( ifelse (df$var1 < 3, ' A ',
                     ifelse (df$var1 < 4, ' B ', 
                     ifelse (df$var1 < 5, ' C ', 
                     ifelse (df$var1 < 6, ' D ', ' E ')))))

#view updated data frame
df

var1 var2 var3 var4 type
1 1 7 3 14 A
2 3 7 3 16 B
3 3 8 6 22 B
4 4 3 10 19 C
5 5 2 12 18 D

Mit der ifelse() -Anweisung haben wir eine neue kategoriale Variable namens „type“ erstellt, die die folgenden Werte annimmt:

  • A “, wenn der Wert der Spalte „var1“ kleiner als 3 ist.
  • Andernfalls „ B “, wenn der Wert in Spalte „var1“ kleiner als 4 ist.
  • Andernfalls „ C “, wenn der Wert in Spalte „var1“ kleiner als 5 ist.
  • Andernfalls „ D “, wenn der Wert in Spalte „var1“ kleiner als 6 ist.
  • Ansonsten „ E “.

Zusätzliche Ressourcen

So erstellen Sie Dummy-Variablen in R
So konvertieren Sie einen Faktor in ein Zeichen in R
So konvertieren Sie Zeichen in R in Zahlen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert