Daten neu strukturieren
Daten neu strukturieren
Hallo
Im Anhang habe ich einen schlechten spezifizierten Datensatz.
die drei letzen Spalten sind nicht notwendig, da eine Spalte mit dem Namen "Art" kreiert werden könnte wobei
0 = Standard (Modell)
1 = Caprio(M odell)
2 = Luxussegment
Wie kann ich diese Daten in R manipulieren, sodass die letzten drei Spalten verschwinden und die neue Spalte "Art" mit den Werten 0, 1 oder 2 neu geschafffen wird.
Vielen Dank für die Hilfe!
Patite
Im Anhang habe ich einen schlechten spezifizierten Datensatz.
die drei letzen Spalten sind nicht notwendig, da eine Spalte mit dem Namen "Art" kreiert werden könnte wobei
0 = Standard (Modell)
1 = Caprio(M odell)
2 = Luxussegment
Wie kann ich diese Daten in R manipulieren, sodass die letzten drei Spalten verschwinden und die neue Spalte "Art" mit den Werten 0, 1 oder 2 neu geschafffen wird.
Vielen Dank für die Hilfe!
Patite
Re: Daten neu strukturieren
Hallo Patite,
Eventuell anschließend noch:
Gruß, Jörg
Code: Alles auswählen
library("readxl")
Dat <- read_xlsx("Autopreise_P2.xlsx")
Modell <- tail(names(Dat), 3)
Dat$Modell <-
apply(matrix(as.logical(as.matrix(Dat[6:8])), ncol=3), 1, function(x) Modell[x])
Code: Alles auswählen
Dat$Modell <- factor(Dat$Modell, levels=Modell)
str(Dat) # Kontrolle
Re: Daten neu strukturieren
Vielen Dank Jörg für den Code.
Ich bin nicht sicher, ob meine Erklärung klar war.
Das korrekte Endergebnis sollte so aussehen, wie im Anhang.
Mit deinem Code komme ich nicht auf dieses Ergebnis.
Vielen Dank nochmals!
Patite
Ich bin nicht sicher, ob meine Erklärung klar war.
Das korrekte Endergebnis sollte so aussehen, wie im Anhang.
Mit deinem Code komme ich nicht auf dieses Ergebnis.
Vielen Dank nochmals!
Patite
- Dateianhänge
-
- Autopreise_korrekt.xlsx
- (11.85 KiB) 38-mal heruntergeladen
Re: Daten neu strukturieren
Hallo Patite,
aber wir sind uns schon einig, dass es sich bei Modell um eine nominal skalierte Variable handelt, oder bist Du anderer Meinung?
Dann erkläre mir mal bitte, welchen Unterschied es für die Auswertung macht, ob Modell mit 0, 1, 2 kodiert ist oder mit 1, 2, 3 oder mit 9, 42, 77 oder was auch immer!
Gruß, Jörg
aber wir sind uns schon einig, dass es sich bei Modell um eine nominal skalierte Variable handelt, oder bist Du anderer Meinung?
Dann erkläre mir mal bitte, welchen Unterschied es für die Auswertung macht, ob Modell mit 0, 1, 2 kodiert ist oder mit 1, 2, 3 oder mit 9, 42, 77 oder was auch immer!
Gruß, Jörg
Re: Daten neu strukturieren
Hallo Jörg
Du hast Recht, dass Modell eine nominal skalierte Variable ist.
Wenn ich den Code ausführe, bekomme ich das Output im Anhang.
Ich möchte als Endergebnis eine Darstellung wie in der Excel-Datei Autopreise_korrekt.xlsx haben.
Vielen Dank!
Patite
Du hast Recht, dass Modell eine nominal skalierte Variable ist.
Wenn ich den Code ausführe, bekomme ich das Output im Anhang.
Ich möchte als Endergebnis eine Darstellung wie in der Excel-Datei Autopreise_korrekt.xlsx haben.
Vielen Dank!
Patite
Re: Daten neu strukturieren
Ich glaube, in diesem Fall kann man auf eine "melt"-Funktion zurückgreifen, ohne sich am Anfänger zu versündigen :
Wenn Du tatsächlich die verschiedenen KFZ-Typen mit 0,1,2 gekennzeichnet haben möchtest, musst Du noch was unternehmen!
P.S.: Caprio ist der Schauspieler, das Auto ohne (festes) Dach heißt Cabrio!
Code: Alles auswählen
library(openxlsx)
library(reshape2)
DF <- read.xlsx("*mein Pfad*")
DF.lang <- melt(DF, id=2:5, measure=6:8, variable.name="Art")
subset(DF.lang, value==1, -value)
P.S.: Caprio ist der Schauspieler, das Auto ohne (festes) Dach heißt Cabrio!
Re: Daten neu strukturieren
da ist doch aber auch nichts anderes als
Code: Alles auswählen
Dat$Art <- as.integer(Dat$Modell) - 1
Dat