Seite 2 von 2
Re: Missings identifizieren und damit umgehen
Verfasst: Mi Mai 22, 2019 10:15 am
von Lis91
jogo hat geschrieben: ↑Mi Mai 22, 2019 8:35 am
hm, ok, sieht ganz so aus. Aber warum sieht dann der Output von
str(df) nicht so ähnlich aus wie bei dem Dataframe
iris?
Code: Alles auswählen
> str(iris)
'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
Kannst Du bitte mal spaßeshalber noch den Output von
zeigen?
Ansonsten hilft nur:
viewtopic.php?f=20&t=11 bzw.
https://stackoverflow.com/questions/596 ... le-example
Gruß, Jörg
Guten Morgen! Das oben war ein Auszug:
Der Rest unterscheidet sich aber nicht groß...
Code: Alles auswählen
> str(df)
'data.frame': 135 obs. of 488 variables:
$ VPN : num 1 2 3 4 5 6 7 8 9 10 ...
$ Sex : num 1 1 2 2 1 1 1 2 2 2 ...
$ Age : num 32 58 19 25 59 66 27 52 42 58 ...
$ BAB_001 : num 2 3 3 3 2 1 NA 3 3 3 ...
$ BAB_002 : num 1 3 3 3 4 2 NA 2 2 1 ...
$ BAB_003 : num 1 2 3 4 2 3 NA 4 4 2 ...
$ BAB_004 : num 4 3 3 3 4 3 NA 3 3 2 ...
$ BAB_005 : num 2 1 2 2 1 1 NA 2 2 2 ...
[list output truncated]
Wenn ich length(df) eingebe, erhalte ich folgenden Output:
Angenommen, ich wollte die Variablen BAB_001 bis BAB_005 in einen extra Datensatz extrahieren. Wäre das mit einem Bind-Befehl möglich? Wahrscheinlich in etwa so, oder?
Liebe Grüße & danke
Lis
Re: Missings identifizieren und damit umgehen
Verfasst: Mi Mai 22, 2019 10:48 am
von jogo
Lis91 hat geschrieben: ↑Mi Mai 22, 2019 10:15 am
Der Rest unterscheidet sich aber nicht groß...
Aber Du merkst selber, dass Du bestimmte Anforderungen (z.B. das Rauslösen einiger Spalten) jetzt viel besser (nämlich konkret) beschreiben kannst, oder?
Code: Alles auswählen
> str(df)
'data.frame': 135 obs. of 488 variables:
$ VPN : num 1 2 3 4 5 6 7 8 9 10 ...
$ Sex : num 1 1 2 2 1 1 1 2 2 2 ...
$ Age : num 32 58 19 25 59 66 27 52 42 58 ...
$ BAB_001 : num 2 3 3 3 2 1 NA 3 3 3 ...
$ BAB_002 : num 1 3 3 3 4 2 NA 2 2 1 ...
$ BAB_003 : num 1 2 3 4 2 3 NA 4 4 2 ...
$ BAB_004 : num 4 3 3 3 4 3 NA 3 3 2 ...
$ BAB_005 : num 2 1 2 2 1 1 NA 2 2 2 ...
[list output truncated]
Angenommen, ich wollte die Variablen BAB_001 bis BAB_005 in einen extra Datensatz extrahieren. Wäre das mit einem Bind-Befehl möglich? Wahrscheinlich in etwa so, oder?
So geht das nicht (hier wird ja nur ein character-Vektor
df2 erzeugt). Aber es gibt verschiedene Möglichkeiten, einige:
1.
df2 <- df[4:8]
2.
df2 <- df[c("BAB_001", "BAB_002",...)]
3.
df2 <- df[, c("BAB_001", "BAB_002",...)]
4.
df2 <- df[sprintf("BAB_%03i", 1:5)]
Das Rauslösen von Spalten aus einem Dataframe will gut überlegt sein. Meistens ist es besser, alles in einer Struktur beisammen zu lassen und einen integer- oder character-Vektor für den Zugriff auf die interssierenden Spalten zu verwenden.
Dies hängt natürlich davon ab, wie die weiteren Berechnungen aussehen.
BTW:
Zitat aus Deiner Anfangsnachricht:
ich bräuchte nochmal eure Hilfe. Ich habe 21 Spalten, ...
Dein Dataframe hat 488 Spalten!
Gruß, Jörg
Re: Missings identifizieren und damit umgehen
Verfasst: Mi Mai 22, 2019 10:21 pm
von Lis91
jogo hat geschrieben: ↑Mi Mai 22, 2019 10:48 am
Lis91 hat geschrieben: ↑Mi Mai 22, 2019 10:15 am
Der Rest unterscheidet sich aber nicht groß...
Aber Du merkst selber, dass Du bestimmte Anforderungen (z.B. das Rauslösen einiger Spalten) jetzt viel besser (nämlich konkret) beschreiben kannst, oder?
Code: Alles auswählen
> str(df)
'data.frame': 135 obs. of 488 variables:
$ VPN : num 1 2 3 4 5 6 7 8 9 10 ...
$ Sex : num 1 1 2 2 1 1 1 2 2 2 ...
$ Age : num 32 58 19 25 59 66 27 52 42 58 ...
$ BAB_001 : num 2 3 3 3 2 1 NA 3 3 3 ...
$ BAB_002 : num 1 3 3 3 4 2 NA 2 2 1 ...
$ BAB_003 : num 1 2 3 4 2 3 NA 4 4 2 ...
$ BAB_004 : num 4 3 3 3 4 3 NA 3 3 2 ...
$ BAB_005 : num 2 1 2 2 1 1 NA 2 2 2 ...
[list output truncated]
Angenommen, ich wollte die Variablen BAB_001 bis BAB_005 in einen extra Datensatz extrahieren. Wäre das mit einem Bind-Befehl möglich? Wahrscheinlich in etwa so, oder?
So geht das nicht (hier wird ja nur ein character-Vektor
df2 erzeugt). Aber es gibt verschiedene Möglichkeiten, einige:
1.
df2 <- df[4:8]
2.
df2 <- df[c("BAB_001", "BAB_002",...)]
3.
df2 <- df[, c("BAB_001", "BAB_002",...)]
4.
df2 <- df[sprintf("BAB_%03i", 1:5)]
Das Rauslösen von Spalten aus einem Dataframe will gut überlegt sein. Meistens ist es besser, alles in einer Struktur beisammen zu lassen und einen integer- oder character-Vektor für den Zugriff auf die interssierenden Spalten zu verwenden.
Dies hängt natürlich davon ab, wie die weiteren Berechnungen aussehen.
BTW:
Zitat aus Deiner Anfangsnachricht:
ich bräuchte nochmal eure Hilfe. Ich habe 21 Spalten, ...
Dein Dataframe hat 488 Spalten!
Gruß, Jörg
Hallo Jörg! Ja, inzwischen hab ich zumindest schonmal eine ungefähre Vorstellung, wie die Befehle aufgebaut sind. Oft fehlt mir nur ein kleiner "Denkanstoss" und dann kann ich mir den für mich passenden Befehl zusammenbasteln
Das Rauslösen von Spalten aus dem Dataframe dachte ich wäre vielleicht sinnvoll, da man bei fast 500 Variablen schon schnell mal den Überblick verliert und so kann ich mir spezielle Fragebogendaten nochmal kompakt in einem extra Datensatz anschauen. Vielen Dank übrigens für die Befehle, so hats einwandfrei geklappt
![Smile :)](./images/smilies/icon_e_smile.gif)
Und zu meinem Zitat am Anfang: Das war vielleicht etwas missverständlich ausgedrückt. Damit meinte ich nicht, dass ich 21 Spalten habe, sondern die zu einem Fragebogen gehören und ich die aus meinem Datensatz in einen Extra-Datensatz extrahieren will.
Einen schönen Abend und danke nochmal,
Lis