Reihenfolge vertauschen bei Ordinalskala
-
- Beiträge: 78
- Registriert: Fr Dez 08, 2017 6:42 am
Reihenfolge vertauschen bei Ordinalskala
Hallo,
ich habe bei einer Ordinalskala einen Fehler gemacht. Variable Höchster Bildungsgrad. 6 = Promotion und 7 = abgeschlossenes Hochschulstudium. Es muss aber anderrum lauten. Wie kann ich das ändern?
viele Grüße Martin
ich habe bei einer Ordinalskala einen Fehler gemacht. Variable Höchster Bildungsgrad. 6 = Promotion und 7 = abgeschlossenes Hochschulstudium. Es muss aber anderrum lauten. Wie kann ich das ändern?
viele Grüße Martin
Re: Reihenfolge vertauschen bei Ordinalskala
6 = abgeschlossenes Hochschulstudium und 7 = PromotionWie kann ich das ändern?
-
- Beiträge: 78
- Registriert: Fr Dez 08, 2017 6:42 am
Re: Reihenfolge vertauschen bei Ordinalskala
Entschuldigung, ich bin Anfänger und die Antwort ist zu kryptisch.
hab ich probiert. Geht nicht.
Grüße Martin
Code: Alles auswählen
k$v_306_korr <- subset(k$v_306, 6 = Hochschulstudium, 7 = Promotion)
Code: Alles auswählen
k$v_306_korr <- k$v_306, 7 == 7-1, 6 = 6+1,
Grüße Martin
Re: Reihenfolge vertauschen bei Ordinalskala
Entschuldigung, ich bin Fortgeschrittener, und meine Antwort war ein Scherzversuch, mit dem ich auf die Unzulänglichkeit Deiner Fragestellung hinweisen wollte!Entschuldigung, ich bin Anfänger und die Antwort ist zu kryptisch.
Dass man auf dieser Basis keine vernünftige Antwort geben kann, sollte doch auch einem Anfänger klar sein!?
Re: Reihenfolge vertauschen bei Ordinalskala
Die Antwort auf Deine Frage lautet: umkodieren. Ist deine Variable numerisch, muss aus 6 eine 7 werden und umgekehrt. Dafür brauchst du einen Zwischenschritt.
Code: Alles auswählen
set.seed(1)
forum <- data.frame(Bildung = round(runif(20, 1, 7)))
forum$Bildung_alt <- forum$Bildung # Zum Vergleich
forum$Bildung[forum$Bildung == 7] <- "Zwischenschritt"
forum$Bildung[forum$Bildung == 6] <- "7"
forum$Bildung[forum$Bildung == "Zwischenschritt"] <- "6"
forum
Re: Reihenfolge vertauschen bei Ordinalskala
@farngarten Bitte den dritten Satz in meinem Post vom 8.12.2017 nochmal lesen und beherzigen: http://forum.r-statistik.de/viewtopic.php?f=22&t=682&p=2801#p2803
@Hufeisen: Das ist kein guter Plan, weil Du die Spalte "Bildung" jetzt als Character vorliegen hast, obwohl sie numerisch sein sollte. Eine Funktion wie die folgende ließe die Daten in numerischem Format und ließe sich jederzeit sehr übersichtlich anpassen, sollten die Vertauschungsregeln komplexer werden:
LG,
Bernhard
@Hufeisen: Das ist kein guter Plan, weil Du die Spalte "Bildung" jetzt als Character vorliegen hast, obwohl sie numerisch sein sollte. Eine Funktion wie die folgende ließe die Daten in numerischem Format und ließe sich jederzeit sehr übersichtlich anpassen, sollten die Vertauschungsregeln komplexer werden:
Code: Alles auswählen
tausche67 <- Vectorize(function(n){
if(n==6) return(7)
if(n==7) return(6)
return(n)
})
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Reihenfolge vertauschen bei Ordinalskala
Warum sollte das auch gehen? Warum denkst Du, dass Du bei 7 == 7-1 ein doppeltes, bei 6 = 6+1 aber ein einfaches Gleichheitszeichen brauchen könntest?farngarten hat geschrieben: ↑Mo Okt 07, 2019 3:35 pmhab ich probiert. Geht nicht.Code: Alles auswählen
k$v_306_korr <- k$v_306, 7 == 7-1, 6 = 6+1,
7 == 7-1 ist immer FALSE
6 = 6+1 ist eine Zuweisung, die den Regen der Arithmetik widerspricht.
R hat, genau wie eigentich alle anderen Programmiersprachen auch, ziemlich konkrete Vorstellungen zur Syntax. Bei natürlichen Sprachen mag einfach Ausprobieren helfen, Ausprobieren hiflt beim Durchschauen der Syntax von Computersprachen wenig.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 78
- Registriert: Fr Dez 08, 2017 6:42 am
Re: Reihenfolge vertauschen bei Ordinalskala
Code: Alles auswählen
tausche67 <- Vectorize(function(n){
if(n==6) return(7)
if(n==7) return(6)
return(n)
})
- Dateianhänge
-
- demo-ordinalskala.csv
- (1.27 KiB) 33-mal heruntergeladen
Re: Reihenfolge vertauschen bei Ordinalskala
Code: Alles auswählen
demo <- read.csv2("http://forum.r-statistik.de/download/file.php?id=710")
tausche67 <- Vectorize(function(n){
if(n==6) return(7)
if(n==7) return(6)
return(n)
})
demo$v_306_neu <- tausche67(demo$v_306)
head(demo, 20)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Reihenfolge vertauschen bei Ordinalskala
Guter Hinweis.
Code: Alles auswählen
set.seed(1)
forum <- data.frame(Bildung = round(runif(20, 1, 7)))
forum$Bildung_alt <- forum$Bildung # Zum Vergleich
forum$Bildung[forum$Bildung == 7] <- "Zwischenschritt"
forum$Bildung[forum$Bildung == 6] <- "7"
forum$Bildung[forum$Bildung == "Zwischenschritt"] <- "6"
forum$Bildung <- as.numeric(forum$Bildung)
forum