Daten filtern und als Tabelle ausgeben

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

Moderatoren: EDi, jogo

hubertus

Re: Daten filtern und als Tabelle ausgeben

Beitrag von hubertus »

jogo hat geschrieben: Di Apr 03, 2018 4:00 pm Was gibt es denn bei:

Code: Alles auswählen

D <- with(Duell, data.frame(v13, v15, v22))
str(D)
Das ist das Ergebnis:

Code: Alles auswählen

> D <- with(Duell, data.frame(v13, v15, v22))
> str(D)
'data.frame':	1070 obs. of  3 variables:
 $ v13: Factor w/ 6 levels "Merkel, Angela",..: 3 3 3 2 1 3 2 6 6 5 ...
 $ v15: Factor w/ 7 levels "nicht-funktionale Aussage/trifft nicht zu",..: 1 1 1 7 7 1 7 1 1 1 ...
 $ v22: Factor w/ 345 levels "nicht-funktionale Aussage/trifft nicht zu",..: 1 1 1 1 1 1 1 1 1 1 ...
Langsam übersteigt das mit meine R-Kenntnisse :D Aber danke, dass du am Ball bleibst.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten filtern und als Tabelle ausgeben

Beitrag von jogo »

Na bitte, endlich haben wir einen Dataframe. (Deshalb ist es auch immer so ungeheuer wichtig, die Struktur der Objekte zu kennen - in R können sich hinter dem Objektnamen die größten Ungetüme verstecken.) Jetzt sollte gehen:

Code: Alles auswählen

ftable(v15 ~ v22, data=D)
ftable(v15 ~ v22, data=D, subset=(v13=="Schulz, Martin"))
und auch

Code: Alles auswählen

subset(D, v13=="Schulz, Martin")
Gruß, Jörg
hubertus

Re: Daten filtern und als Tabelle ausgeben

Beitrag von hubertus »

Ja, jetzt passt alles. Danke vielmals!

Jetzt will ich allerdings auch noch verstehen, was ich da gerade gemacht habe :D

Code: Alles auswählen

D <- with(Duell, data.frame(v13, v15, v22))
So erzeuge ich also einen Dataframe aus den entsprechenden Spalten, richtig? Wie mache ich das für alle Spalten?
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten filtern und als Tabelle ausgeben

Beitrag von jogo »

hubertus hat geschrieben: Di Apr 03, 2018 4:36 pm Ja, jetzt passt alles. Danke vielmals!

Jetzt will ich allerdings auch noch verstehen, was ich da gerade gemacht habe :D
Hier etwas einführende Lektüre: https://stackoverflow.com/questions/159 ... -list-in-r

Code: Alles auswählen

D <- with(Duell, data.frame(v13, v15, v22))
So erzeuge ich also einen Dataframe aus den entsprechenden Spalten, richtig?
Den Begriff Spalten halte ich für unangebracht, solange es um die Elemente der Liste Duell geht, denn eine Liste kann alle möglichen Arten von Objekten als Elemente enthalten: einzelne Werte, ganze Vektoren oder Matrizen oder auch Dataframes oder Listen.
Ich hatte gehofft, dass wenigstens die drei Elemente Duell$v13, Duell$v15 und Duell$v22 Vektoren gleicher Länge sind.
Das war eine dieser - wie sagtest Du - Mutmaßungen.
Wie mache ich das für alle Spalten?
Dazu müsstest Du erklären, was mit den Teilen (ich vermeide das Wort Spalten, siehe oben) geschehen sollen, die nicht zu der Struktur eines Dataframes passen:
z.B. all das Zeug, was nach dem Element $v49 folgt.
Wenn das weg kann, dann kannst Du

Code: Alles auswählen

D <- as.data.frame(Duell[1:49])
str(D)
probieren.
Keinesfalls lässt sich alles, was in dem Objekt Duell enthalten ist, mit dem Begriff Spalte beschreiben; und deshalb lässt sich auch nicht das Objekt in Gänze in einen Dataframe umwandeln.

So langsam habe ich den Verdacht, dass die Daten aus einem anderen Programm stammen.
Deshalb die Frage: wie werden die Daten eingelesen? Bitte zeige mal die Codezeile.

Nachtrag:
Vielleicht muss man auch nur die zusätzlichen Attribute löschen, oder man kann sie ignorieren:

Code: Alles auswählen

D <- as.data.frame(Duell)
hier ist noch etwas: https://stackoverflow.com/questions/455 ... alue-label

Gruß, Jörg
Antworten