Werte mehrerer verschiedener Variablen in eine Variable kopieren

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

Moderatoren: EDi, jogo

Antworten
Janone
Beiträge: 9
Registriert: So Feb 24, 2019 3:51 pm

Werte mehrerer verschiedener Variablen in eine Variable kopieren

Beitrag von Janone »

Hallo Forum-Mitglieder,

ich stehe vor folgendem Problem:
Ich versuche für eine Mehrebenenanalyse eine Einkommensvariable zu erstellen für alle im Datensatz enthalten Einkommensvariablen (jedes Land, insgesamt 32, besitzt eine eigene Variable).

Nun würde ich gerne nach und nach die einzelnen Werte der jeweiligen Länder in einer neu erstellten Variable kopieren. Leider klappt es nicht so ganz. Habe Befehle wie „paste“ und „rbind“ schon ausprobiert, jedoch hat dies nicht funktioniert.

LEGENDE:
CNTRY_Code -> definiert das jeweilige Land (32=Germany)
INC -> Einkommensangabe der jeweilig Befragten

Der Datensatz sieht wie folgt aus:

CNTRY_Code—-GER_INC——FR_INC —-UK_INC...
32—————————2500————NA ————NA
32-———————-—1800————NA ————NA
32—————————3400————NA ————NA
32—————————NA—————NA ————NA
32—————————4200————NA ————NA
...

40 —————————NA————2600 ———-NA
40 —————————NA————3100 ———-NA
40 —————————NA————1700 ———-NA
40 —————————NA ————2100 ———NA
40 —————————NA ————NA ————-NA
40 —————————NA ————600 ———--NA
...

62 —————————NA ————NA ———-—5200
62 —————————NA ————NA ———-—1300
...

Vielen Dank im Voraus

Viele Grüße
Jörn
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Werte mehrerer verschiedener Variablen in eine Variable kopieren

Beitrag von bigben »

Hallo Jörn,

wenn die Daten ganz konsistent so aufgebaut sind, kannst Du einfach Reihensummen bilden. Schau Dir dieses Beispiel mal an:

Code: Alles auswählen

bsp <- data.frame(ctry = c(32, 32, 32, 43, 43, 43, 43),
                  ger = c(101, 102, 103, NA, NA, NA, NA),
                  fr = c(NA, NA, NA, 201, 202, 203, NA))

print(bsp)                  

bsp$income <- rowSums(bsp[, c(2, 3)], na.rm = TRUE)

print(bsp) 
Wie Du siehst, macht diese Variable aus lauter NA in der Summe eine 0. Wenn Du das nicht willst, geht folgende Alternative:

Code: Alles auswählen

bsp <- data.frame(ctry = c(32, 32, 32, 43, 43, 43, 43),
                  ger = c(101, 102, 103, NA, NA, NA, NA),
                  fr = c(NA, NA, NA, 201, 202, 203, NA))

bsp$income <- rowMeans(bsp[, c(2, 3)], na.rm = TRUE)

print(bsp)
HTH,
Bernhard
Zuletzt geändert von bigben am Do Jan 16, 2020 8:28 am, insgesamt 1-mal geändert.
Grund: Ergänzung
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Janone
Beiträge: 9
Registriert: So Feb 24, 2019 3:51 pm

Re: Werte mehrerer verschiedener Variablen in eine Variable kopieren

Beitrag von Janone »

Hallo Bernhard,

vielen Dank für die super schnelle Antwort! Den rowMeans-Befehl verwende ich sogar öfter und bin nicht dahintergekommen... Danke für den Denkanstoß!!

Viele Grüße
Jörn
Antworten