Mit Hilfe der Tabelle() erstellen 3 variabler Frequenz-Tabelle in R
Ich bin neu in R und Suche nach etwas Hilfe. Ich verstehe das folgende problem ist relativ einfach, und geschaut haben, für die sich ähnliche Fragen. Keiner geben ganz die Antwort, die ich Suche - jede Hilfe würde geschätzt werden.
Das problem:
Herstellung eines Frequenz-Tabelle mit den table()
Funktion für die drei Variablen mit Daten im format:
Var1 Var2 Var3
1 0 1 0
2 0 1 0
3 1 1 1
4 0 0 1
Wo, 0 = "Nein" und 1 = "ja"
Und der final table ist in folgenden format mit Variablen und Werte gekennzeichnet:
Var3
Yes No
Var1 Yes 1 0
No 1 2
Var2 Yes 1 2
No 1 0
Was ich bisher versucht habe:
Verwenden Sie den folgenden code, ich bin in der Lage zu produzieren eine 2-Variablen-Tabelle mit labels für die Variablen, aber nicht für die Werte (zB. Nein und ja).
table(data$Var1, data$Var3, dnn = c("Var1", "Var3"))
Sieht es wie folgt aus:
Var3
Var1 0 1
0 2 1
1 0 1
Versuchen, die Beschriftung der Zeilen-und Spaltenwerte (0 = Nein und 1= ja) ich verstehe row.names
und responseName
können verwendet werden, jedoch wird der folgende Versuch auf label-Zeile Namen gibt all arguments must have the same length
Fehler.
> table(data$Var1, data$Var2, dnn = c("Var1", "Var2"), row.names = c("No", "Yes"))
Habe ich auch versucht, mit Hilfe ftable()
jedoch die Form der Tabelle hergestellt untenstehende code ist nicht korrekt was in falschen Frequenzen für das problem. Das Problem mit der Beschriftung der Zeile & col-Werte besteht.
> ftable(data$Var1, data$Var2, data$Var3, dnn = c("Var1", "Var2", "Var3"))
Var3 0 1
Var1 Var2
0 0 0 1
1 2 0
1 0 0 0
1 0 1
Jede Hilfe zu table()
erzeugen Sie eine Tabelle der Form gewünscht würde sehr geschätzt werden.
dat <- data.frame(lapply(dat, factor, levels=1:0, labels=c("Yes","No")))
Danke, das ist sehr hilfreich und ist perfekt für die Lösung der labeling-problem.
InformationsquelleAutor Alison Bennett | 2015-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie versuchen
tabular
auslibrary(tables)
nach dem Wechsel des labels, wie gezeigt, die von @thelatemailDaten
InformationsquelleAutor akrun
Der einfachste Weg ist wahrscheinlich mit dem
reshape2
Paket. Zunächst müssen Sie konvertieren Sie Ihre numerische Informationen zu Faktoren, so dass Sie nicht behandeln es als eine Zahl.Dann können Sie einfach nur anwenden
table(data)
zu Holen Sie sich die Informationen, die Sie wollen. Wenn Sie wirklich wollen, um es zu transformieren in das format, das Sie angegeben haben, dann ziehen Sie es alsdata.frame
- und dann verwandeln Sie es wie gewünscht:Dieses als Ausgabe:
BEARBEITEN: Sie können einfach verwenden Sie
ftable
auf dem Daten-frame einmal seinen allen Faktoren:ich habe erkannt, können Sie einfach
ftable
das gleiche Ergebnis zu erhalten (siehe mein edit). Wenn Sie interessiert sind, inreshape2
nur versucheninstall.packages("reshape2")
in der Konsole und es wird installiert es automatisch für Siedie
ftable
Lösung ist nicht ganz das gleiche - die Antwort gibt eine Anzahl vonVar1 x Var2 x Var3
nichtVar1 x Var3
trat mitVar2 x Var3
thats right @thelatemail, dies ist angegeben in der Frage. Auch im Blick auf die Form der Ausgabe mit reshape2, dies ist nicht die spezifische Form, die ich Suche.
die gewünschte Form definiert ist, innerhalb der Frage (die 2. code-block).
InformationsquelleAutor chappers