Seite 1 von 1
Data frames erstellen
Verfasst: Mi Mai 20, 2020 5:59 pm
von xleasx
Hallo!
Aus 3 verschiedenen Umfragen, sollen 3 Spalten einer gleichen Kategorie herausgenommen werden und diese anschließend als Data frame dargestellt werden.
Nun habe ich zunächst die einzelnen Spalten herausgegriffen:
x1=Umfrage1$Spalte
x2=Umfrage2$Spalte
x3=Umfrage3$Spalte
(Ist jetzt verallgemeinert, hoffe es ist trotzdem verständlich)
Nun wollte ich den Befehl data.frames(x1,x2,x3) verwenden um den Frame zu erstellen, doch es klappt nicht. Habt ihr eine Idee, was ich falsch gemacht haben könnte?
Re: Data frames erstellen
Verfasst: Mi Mai 20, 2020 7:04 pm
von bigben
xleasx hat geschrieben: Mi Mai 20, 2020 5:59 pm
Hallo!
Aus 3 verschiedenen Umfragen, sollen 3 Spalten einer gleichen Kategorie herausgenommen werden und diese anschließend als Data frame dargestellt werden.
Nun habe ich zunächst die einzelnen Spalten herausgegriffen:
x1=Umfrage1$Spalte
x2=Umfrage2$Spalte
x3=Umfrage3$Spalte
(Ist jetzt verallgemeinert, hoffe es ist trotzdem verständlich)
Nun wollte ich den Befehl data.frames(x1,x2,x3) verwenden um den Frame zu erstellen, doch es klappt nicht. Habt ihr eine Idee, was ich falsch gemacht haben könnte?
Das s am Ende von data.frames ist zuviel.
Re: Data frames erstellen
Verfasst: Mi Mai 20, 2020 7:59 pm
von xleasx
Ja das habe ich dann auch noch bemerkt. Trotzdem wird angezeigt, dass "Argumente implizieren unterschiedliche Anzahl Zeilen: 90, 87, 107".
Muss ich dann bei meinen vorherigen Schritten noch etwas erweitern?
Re: Data frames erstellen
Verfasst: Mi Mai 20, 2020 8:59 pm
von jogo
Hallo xleasx,
ein Dataframe ist eine Liste von Vektoren. Die Vektoren sind bei einem Dataframe alle gleich lang.
Wenn die Vektoren in einen Dataframe sollen, musst Du uns beschreiben, wie das Ergebnis aussehen soll:
sollen die langen Vektoren gekürzt werden?
oder sollen die kurzen Vektoren mit anderen Werten aufgefüllt werden, z.B. NA.
Die sauberste Lösung ist eine Liste und kein Dataframe, aber auch hier musst Du kundtun, ob das eine Lösung für Dich ist.
Das mit der Liste sieht so aus:
Code: Alles auswählen
L <- list(x1=Umfrage1$Spalte, x2=Umfrage2$Spalte, x3=Umfrage3$Spalte)
Gruß, Jörg
p.s.:
Dieses Thema gehört nicht in den Bereich FAQ. Ich werde es demnächst in den Bereich "Allgemeine Fragen zu R" verschieben.
Re: Data frames erstellen
Verfasst: Mi Mai 20, 2020 9:03 pm
von xleasx
Hallo Jörg!
Vielen Dank für deine Rückmeldung! Eigentlich ist die Erstellung eines Data frames vorgegeben, deswegen werde ich wohl probieren, die Vektoren auszufüllen. Versuche mich aber auch mal an der Liste!
Re: Data frames erstellen
Verfasst: Mi Mai 20, 2020 9:24 pm
von jogo
Hallo xleasx,
für einen Dataframe vielleicht so:
Code: Alles auswählen
s1 <- 1:5
s2 <- 1:7
L <- list(s1, s2)
n <- max(lengths(L))
myfill <- function(x, n) if (length(x)==n) return(x) else { x[n] <- NA; return(x) }
lapply(L, myfill, n=n)
data.frame(x1=myfill(s1, n), x2=myfill(s2, n))
Gruß, Jörg
Re: Data frames erstellen
Verfasst: Mi Mai 20, 2020 9:58 pm
von xleasx
Danke! Hat geklappt!