Seite 1 von 1

Daten umcodieren

Verfasst: Sa Jul 20, 2019 3:42 pm
von Danke_im_Voraus
Hallo zusammen,

ich habe einen Datensatz bei der u.a. die Variable Geschlecht gegeben ist.
Die Variable ist in 0 für männlich und 1 für weiblich codiert.
Zum leichteren Verständnis möchte ich gerne die 0 durch ein M und die 1 durch ein W ersetzen.

Leider finde ich keinen passenden Befehl für diese "umcodierung".
Habt ihr eine Idee?

Vielen Dank im Voraus.

Re: Daten umcodieren

Verfasst: So Jul 21, 2019 9:48 am
von student
Klar!

Siehe hier und hier:

Code: Alles auswählen

 A <- c(1, 1, 0, 0, 1)
> A
[1] 1 1 0 0 1
> recode(A, "0 = 'm'; 1 = 'w'") 
[1] "w" "w" "m" "m" "w"


Re: Daten umcodieren

Verfasst: So Jul 21, 2019 9:59 am
von Danke_im_Voraus
Hallo Student,

vielen Dank für deine Hilfe.
Leider erhalte ich folgende Fehlermeldung:

> recode(Geschlecht, "0 = 'm'; 1 = 'w'")
Error: Argument 2 must be named, not unnamed
Call `rlang::last_error()` to see a backtrace

Und muss ich noch zusätzlich data=dataframe hinzufügen, damit R weiß aus welchem Datensatz die Spalte stammt, die umcodiert werden soll?

Vielen Dank im Voraus.

Re: Daten umcodieren

Verfasst: So Jul 21, 2019 11:41 am
von Danke_im_Voraus
Hallo Student,

das ist die aktuelle Struktur meiner Variable Geschlecht.
> str(Körpermaße_Kinder$Geschlecht)
Factor w/ 2 levels "0","1": 1 2 1 2 1 1 2 1 2 1 ...

Am optimalsten wäre es wenn, ich sie so umcodieren könnte:
> str(Körpermaße_Kinder$Geschlecht)
Factor w/ 2 levels "M","W": 1 2 1 2 1 1 2 1 2 1 ...

Also Factor mit zwei Levels M und W.
Damit man z.b. bei Balkendiagrammen die Beschriftung M und W statt 0 und 1 hat.

Ist verständlich was ich meine?

Re: Daten umcodieren

Verfasst: Mo Jul 22, 2019 9:52 am
von student
Wenn ich Dich richtig verstehe, liegen Deine Daten als factor vor.

Wenn ja, sollte es trotzdem gehen:

Code: Alles auswählen

> A <- c(0, 0, 0, 1, 1, 0, 1)
> str(A)
 num [1:7] 0 0 0 1 1 0 1
> A <- as.factor(A)
> A
[1] 0 0 0 1 1 0 1
Levels: 0 1
> recode(A, "0 = 'm'; 1 = 'w'") 
[1] m m m w w m w
Levels: m w
Oder so...

Code: Alles auswählen

> A <- c(0, 0, 0, 1, 1, 0, 1)
> A <- factor(A, labels = c("w", "m"))
> A
[1] w w w m m w m
Levels: w m
> summary(A)
w m 
4 3 
> plot(A)
Hast Du für recode das Paket car geladen, wie hier beschrieben?

Re: Daten umcodieren

Verfasst: Mo Jul 22, 2019 10:49 pm
von Danke_im_Voraus
Hallo Student,

perfekt, die zweite Variante hat funktioniert!
Vielen vielen Dank für die Mühe und Geduld!

Re: Daten umcodieren

Verfasst: Sa Mär 28, 2020 3:31 pm
von MVollmer
Hallo community,

ich habe eine ähnliche Fragestellung.
Ich habe die Variable Geschlecht aus einer kryptischen Codierung im Datensatz umbenannt, diese enthält integere (int) Ausprägungen 0 (weiblich) und 1 (männlich). Das hat noch funktioniert und die Variable heisst nun Geschlecht.

> names(gesundheitsumfrage)[names(gesundheitsumfrage)=="q_004.1"] <- "Geschlecht"

N/As habe ich bereits herausgefiltert.

> str(gesundheitsumfrage2$Geschlecht)
int [1:763] 0 0 1 0 0 0 0 0 0 0 ...

Leider funktioniert keine der in diesem Thread erläuterten Vorgehensweisen, die Ausprägungen in "weiblich" bzw "männlich" umzucodieren um im Schaubild entsprechend schöne Bezeichnungen anstelle Zahlen stehen zu haben.
Das Paket car ist installiert.

Liegt es daran, dass die Ausprägungen integer sind?
Hat jemand eine Idee, wie ich vorgehen könnte?

Besten Dank,

VG
Matthias

Re: Daten umcodieren

Verfasst: Sa Mär 28, 2020 5:11 pm
von ruppy

Code: Alles auswählen

gesundheitsumfrage2$Geschlecht <- factor(ifelse(gesundheitsumfrage2$Geschlecht == 1, "männlich", "weiblich"))
Probier mal das.

Re: Daten umcodieren

Verfasst: Sa Mär 28, 2020 6:49 pm
von MVollmer
Danke dir ruppy, hat perfekt geklappt!