Daten neu strukturieren

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

Moderatoren: EDi, jogo

Antworten
patite
Beiträge: 39
Registriert: Sa Jul 20, 2019 4:36 pm

Daten neu strukturieren

Beitrag von patite »

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
Autopreise_P2.xlsx
(14.85 KiB) 34-mal heruntergeladen
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
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten neu strukturieren

Beitrag von jogo »

Hallo Patite,

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])
Eventuell anschließend noch:

Code: Alles auswählen

Dat$Modell <- factor(Dat$Modell, levels=Modell)
str(Dat) # Kontrolle
Gruß, Jörg
patite
Beiträge: 39
Registriert: Sa Jul 20, 2019 4:36 pm

Re: Daten neu strukturieren

Beitrag von patite »

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
Dateianhänge
Autopreise_korrekt.xlsx
(11.85 KiB) 38-mal heruntergeladen
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten neu strukturieren

Beitrag von jogo »

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
patite
Beiträge: 39
Registriert: Sa Jul 20, 2019 4:36 pm

Re: Daten neu strukturieren

Beitrag von patite »

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
Dateianhänge
Autopreise.png
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Daten neu strukturieren

Beitrag von Athomas »

Ich glaube, in diesem Fall kann man auf eine "melt"-Funktion zurückgreifen, ohne sich am Anfänger zu versündigen :) :

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)
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!
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten neu strukturieren

Beitrag von jogo »

patite hat geschrieben: Do Aug 01, 2019 10:10 am 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
da ist doch aber auch nichts anderes als

Code: Alles auswählen

Dat$Art <- as.integer(Dat$Modell) - 1
Dat
Gruß, Jörg
Antworten