Wertelabels in R

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Hadsga
Beiträge: 21
Registriert: Di Aug 01, 2017 2:09 pm

Wertelabels in R

Beitrag von Hadsga »

Hi,

ich habe folgendes Problem:

Ich habe einen Dataframe "CB" mit der Spalte "gender". Diese enthält der Variablen "Male" und "Female".

Ich möchte den Variblen die Werte 0 für "Male" und 1 für "Female" zuordenen. Dies habe ich gemacht durch:

Code: Alles auswählen

CB$gender <- ifelse(CB$gender == "Male", 0, ifelse(CB$gender == "Female", 1, 999))[
Nun möchte ich, dass r weiß, dass 0 "Male" ist und 1 "Female" ist.

Dazu habe ich folgendes versucht:

Code: Alles auswählen

CB$gender <- factor(CB$gender, 0:1, labels = c("Male", "Female"))
Nun wird in der Spalte "gender" nicht mehr 0 und 1 angezeigt, sondern wieder "Male" und "Female".

Drehe ich das Ganze,

Code: Alles auswählen

CB$gender <- factor(CB$gender, levels = c("Male", "Female"), labels = c(0,1))
dann zeigt die Splate "gender" NA an.

Ziel ist, dass das ganze nachher so aussieht:

Spalte:

Code: Alles auswählen

 
 gender
 1
 1
 0
 1
 .
 .
 .
Tablle absolute Häufigkeiten:

Code: Alles auswählen


table(CB$gender)

Male  Female
190    210

Kann mir jemand weiterhelfen?

VG
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Wertelabels in R

Beitrag von bigben »

Hallo!
Hadsga hat geschrieben: Di Aug 15, 2017 3:28 pm Dazu habe ich folgendes versucht:

Code: Alles auswählen

CB$gender <- factor(CB$gender, 0:1, labels = c("Male", "Female"))
Das war wahrscheinlich schon der richtige Ansatz. Angezeigt wird danach zwar "Male" und "Female", aber trotzdem rechnet R intern mit Zahlen.
Gibt doch danach bitte mal das Ergebnis von

Code: Alles auswählen

str(CB$gender)
hier an.

Code: Alles auswählen

table(CB$gender)
sollte das richtige Ergebnis liefern und alle anderen Rechnungen auch, weil R intern mit "1" und "2" rechnet, aber "Male" und "Female" schreibt und auch beim Erstellen von Regressionsdummys etc ein vernünftiges/logisches Verhalten an den Tag legt, also das Umwandeln von "Male" und "Female" in 0 und 1 automatisch erledigt.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten