Reihenfolge vertauschen bei Ordinalskala

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
farngarten
Beiträge: 78
Registriert: Fr Dez 08, 2017 6:42 am

Reihenfolge vertauschen bei Ordinalskala

Beitrag von farngarten »

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
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Reihenfolge vertauschen bei Ordinalskala

Beitrag von Athomas »

Wie kann ich das ändern?
6 = abgeschlossenes Hochschulstudium und 7 = Promotion :roll:
farngarten
Beiträge: 78
Registriert: Fr Dez 08, 2017 6:42 am

Re: Reihenfolge vertauschen bei Ordinalskala

Beitrag von farngarten »

Entschuldigung, ich bin Anfänger und die Antwort ist zu kryptisch.

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,
hab ich probiert. Geht nicht.
Grüße Martin
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Reihenfolge vertauschen bei Ordinalskala

Beitrag von Athomas »

Entschuldigung, ich bin Anfänger und die Antwort ist zu kryptisch.
Entschuldigung, ich bin Fortgeschrittener, und meine Antwort war ein Scherzversuch, mit dem ich auf die Unzulänglichkeit Deiner Fragestellung hinweisen wollte!

Dass man auf dieser Basis keine vernünftige Antwort geben kann, sollte doch auch einem Anfänger klar sein!?
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Reihenfolge vertauschen bei Ordinalskala

Beitrag von Hufeisen »

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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Reihenfolge vertauschen bei Ordinalskala

Beitrag von bigben »

@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:

Code: Alles auswählen

tausche67 <- Vectorize(function(n){
  if(n==6) return(7)
  if(n==7) return(6)
  return(n)
})
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Reihenfolge vertauschen bei Ordinalskala

Beitrag von bigben »

farngarten hat geschrieben: Mo Okt 07, 2019 3:35 pm

Code: Alles auswählen

k$v_306_korr <- k$v_306, 7 == 7-1, 6 = 6+1,
hab ich probiert. Geht nicht.
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?
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
farngarten
Beiträge: 78
Registriert: Fr Dez 08, 2017 6:42 am

Re: Reihenfolge vertauschen bei Ordinalskala

Beitrag von farngarten »

Code: Alles auswählen

tausche67 <- Vectorize(function(n){
  if(n==6) return(7)
  if(n==7) return(6)
  return(n)
})
Wie mache ich es ,dass er nur für die eine Variable die Codierung tauscht?
Dateianhänge
demo-ordinalskala.csv
(1.27 KiB) 31-mal heruntergeladen
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Reihenfolge vertauschen bei Ordinalskala

Beitrag von bigben »

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
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Reihenfolge vertauschen bei Ordinalskala

Beitrag von Hufeisen »

bigben hat geschrieben: Mo Okt 07, 2019 3:49 pm @Hufeisen: Das ist kein guter Plan, weil Du die Spalte "Bildung" jetzt als Character vorliegen hast, obwohl sie numerisch sein sollte.
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
Antworten