Werte in einem DatenFrame ändern

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

Moderatoren: EDi, jogo

Antworten
dennbas
Beiträge: 4
Registriert: Sa Nov 10, 2018 9:23 am

Werte in einem DatenFrame ändern

Beitrag von dennbas » Sa Nov 10, 2018 9:28 am

Hallo,

ich habe ein Datenframe in dem die Werte nicht optimal vorliegen um ein barplot zu zeichnen.

Da die ganze Tabelle fast nu aus 0 und 1 besteht.

Nun möchte ich die 1 und 0 durch Strings ersetzen.

Mein Ansatz war nun der Folgende:

Code: Alles auswählen

Anzahl <- as.numeric( length(data$Mario) )


for(i in 1:Anzahl)
{
  if(data$Mario[i] == 0){
    data$Mario[i] <- "MarioLeer"}
  
  if(data$Mario[i] == 1){
    data$Mario[i] <- "MarioVOll"} 
}
So klappt es nicht, daher bitte um Hilfe :)


Vielen Dank im Voraus.

dennbas
Beiträge: 4
Registriert: Sa Nov 10, 2018 9:23 am

Re: Werte in einem DatenFrame ändern

Beitrag von dennbas » Sa Nov 10, 2018 10:02 am

das löuft so doch, hatte da ne alte Tabelle offen..

geht das noch eleganter ?

Anti
Beiträge: 23
Registriert: Di Nov 06, 2018 10:48 am

Re: Werte in einem DatenFrame ändern

Beitrag von Anti » Sa Nov 10, 2018 10:47 am

Hmm, wie wäre es mit

Code: Alles auswählen

MarioVector = ifselse(data$Mario == 0, "MarioLeer", "MarioVOll")
?

jogo
Beiträge: 988
Registriert: Fr Okt 07, 2016 8:25 am

Re: Werte in einem DatenFrame ändern

Beitrag von jogo » Sa Nov 10, 2018 12:12 pm

Hallo dennbas,

willkommen im Forum!
Ich bin der Meinung, factor() ist die saubere Lösung. Hier ein reproduzierbares Beispiel:

Code: Alles auswählen

set.seed(42)
data <- data.frame(Mario=sample(0:1, 10, rep=TRUE))

data$MarioFaktor <- factor(data$Mario, levels=c(0,1), labels=c("MarioLeer", "MarioVOll"))
data
Gruß, Jörg

dennbas
Beiträge: 4
Registriert: Sa Nov 10, 2018 9:23 am

Re: Werte in einem DatenFrame ändern

Beitrag von dennbas » Sa Nov 10, 2018 2:33 pm

Hi , vielen Dank beide Möglichkeiten laufen. Welche der beiden besser ist kann ich leider nicht beurteilen.

Auf jeden Fall sind beide deutlich besser als mein Konstrukt :)


@jogo für was haste set.seed=(42) gebraucht ? Ist laut help sowas wie randInt()

jogo
Beiträge: 988
Registriert: Fr Okt 07, 2016 8:25 am

Re: Werte in einem DatenFrame ändern

Beitrag von jogo » Sa Nov 10, 2018 4:57 pm

Hallo dennbas,
dennbas hat geschrieben:
Sa Nov 10, 2018 2:33 pm
@jogo für was haste set.seed=(42) gebraucht ? Ist laut help sowas wie randInt()
da habe ich mich aber kräftig verschrieben, richtig muss es heißen:

Code: Alles auswählen

set.seed(42)
Immer wenn ich Daten per Zufallszahlen generiere, packe ich das mit rein. So kannst Du, wenn Du den Code laufen lässt, genau die gleichen Daten generieren. Schließlich besteht ja bei 10 zufälligen Werten aus 0 und 1 die Wahscheinlichkeit von 2*1/1024, dass alle Werte entweder 0 oder alle 1 sind - das wäre doch wirklich kein schönes Beispiel, richtig?
Naja, und die 42 ... Du weißt schon ... das ist immer eine geeignete Antwort.

Gruß, Jörg

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast