Werte umkodieren

For(), If(), While() und Verwandte. Diskussion von programmiertechnischen Fragen.

Werte umkodieren

Beitragvon Sstatistik » So 12. Nov 2017, 13:02

Hallo ,
die Variable daten$Country hat die Werte 1 bis 8. Diese würde ich gerne umkodieren. Leider funktioniert die ifelse Funktion nicht

daten$Land <- ifelse(daten$Country ==3, "Deutschland", + ifelse(daten$Country ==7, "England", +ifelse(daten$Country ==8, "Estland",
+ ifelse(daten$Country ==4, "Griechenland", + ifelse(daten$Country == 1, "Italien", + ifelse(daten$Country ==5, "Portugal",
+ ifelse(daten$Country ==2, "Schweden", + ifelse(daten$Country==6, "Tschechien"))))))))

Error in ifelse(daten$Country == 6, "Tschechien") :
argument "no" is missing, with no default


Das habe ich auch schon probiert:
> daten$Land <- ifelse(daten$Country ==3, "Deutschland", + ifelse(daten$Country ==7, "England", +ifelse(daten$Country ==8, "Estland",
+ + ifelse(daten$Country ==4, "Griechenland", + ifelse(daten$Country == 1, "Italien", + ifelse(daten$Country ==5, "Portugal",
+ + ifelse(daten$Country ==2, "Schweden", + ifelse(daten$Country==6, "Tschechien", NA))))))))
Error in +ifelse(daten$Country == 6, "Tschechien", NA) :
invalid argument to unary operator

> daten$Land <- ifelse(daten$Country ==3, "Deutschland", + ifelse(daten$Country ==7, "England", +ifelse(daten$Country ==8, "Estland",
+ + ifelse(daten$Country ==4, "Griechenland", + ifelse(daten$Country == 1, "Italien", + ifelse(daten$Country ==5, "Portugal",
+ + ifelse(daten$Country ==2, "Schweden", + ifelse(daten$Country==6, "Tschechien", 1))))))))
Error in +ifelse(daten$Country == 6, "Tschechien", 1) :
invalid argument to unary operator

> daten$Land <- ifelse(daten$Country ==3, "Deutschland", + ifelse(daten$Country ==7, "England", +ifelse(daten$Country ==8, "Estland",
+ + ifelse(daten$Country ==4, "Griechenland", + ifelse(daten$Country == 1, "Italien", + ifelse(daten$Country ==5, "Portugal",
+ + ifelse(daten$Country ==2, "Schweden", + ifelse(daten$Country==6, "Tschechien", 10))))))))
Error in +ifelse(daten$Country == 6, "Tschechien", 10) :
invalid argument to unary operator

> daten$Land <- ifelse(daten$Country ==3, "Deutschland", + ifelse(daten$Country ==7, "England", +ifelse(daten$Country ==8, "Estland",
+ + ifelse(daten$Country ==4, "Griechenland", + ifelse(daten$Country == 1, "Italien", + ifelse(daten$Country ==5, "Portugal",
+ + ifelse(daten$Country ==2, "Schweden", + ifelse(daten$Country==6, "Tschechien", "Fehlt"))))))))
Error in +ifelse(daten$Country == 6, "Tschechien", "Fehlt") :
invalid argument to unary operator

> daten$Land <- ifelse(daten$Country ==3, "Deutschland", + ifelse(daten$Country ==7, "England", +ifelse(daten$Country ==8, "Estland",
+ + ifelse(daten$Country ==4, "Griechenland", + ifelse(daten$Country == 1, "Italien", + ifelse(daten$Country ==5, "Portugal",
+ + ifelse(daten$Country ==2, "Schweden", + ifelse(daten$Country==6, "Tschechien", "NA"))))))))
Error in +ifelse(daten$Country == 6, "Tschechien", "NA") :
invalid argument to unary operator


Könnt ihr mir weiterhelfen wie ich die Werte sonst umkodieren kann in die Ländernamen?
Vielen vielen Dank,
Sofie
Sstatistik
 
Beiträge: 9
Registriert: Mi 8. Nov 2017, 18:26
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Werte umkodieren

Beitragvon Sstatistik » So 12. Nov 2017, 17:50

Erstmal danke für die schnelle Antwort!
Leider kommt dann folgende Fehlermeldung

Error in `$<-.data.frame`(`*tmp*`, Land, value = c("Griechenland", "Deutschland", :
replacement has 20 rows, data has 4806


weil mein Datensatz 4806 Personen hat, die den verschiedenen Ländern angehören, also es gibt nicht nur pro Land eine Person,
deswegen hatte ich das auch mit dem logischen ifelse Befehl probiert, weil ich gerne sowas hätte mit wenn da 1 steht mach Italien draus.
Ist das verständlich geschrieben?
Sstatistik
 
Beiträge: 9
Registriert: Mi 8. Nov 2017, 18:26
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Werte umkodieren

Beitragvon Sstatistik » So 12. Nov 2017, 18:17

Ich habs grade doch noch geschafft mit diesem Befehl, aber danke!

daten$Land<-recode(daten$Country,"1='Italien'; 4='Griechenland'; 3='Deutschland'; 2='Schweden'; 5='Portugal'; 6='Tschechien'; 7='England'; 8='Estland' " )
Sstatistik
 
Beiträge: 9
Registriert: Mi 8. Nov 2017, 18:26
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Werte umkodieren

Beitragvon Sayou19600 » Di 16. Okt 2018, 16:29

Dank für die Informationen
Sayou19600
 
Beiträge: 3
Registriert: Di 16. Okt 2018, 16:27
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Programmierkonzepte

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast