Ich verwende derzeit cast
für eine geschmolzene Tabelle, um die Summe aller Werte bei der Kombination der ID-Variablen ID1 (Zeilennamen) und ID2 (Spaltenüberschriften) zusammen mit den Gesamtsummen für jede Zeile mit margins="grand_col"
zu berechnen. .
c <- cast(m, ID1 ~ ID2, sum, margins="grand_col")
So weit, so R-ähnlich.
Dann teile ich jede Zelle nach ihrer Zeilensumme, um einen Prozentsatz der Gesamtsumme zu erhalten.
%Vor% Das sieht klatschig aus. Soll ich in cast
oder vielleicht in plyr
etwas tun, um die prozentuale Berechnung der Marge im ersten Befehl zu handhaben?
Danke, Matt
Angenommen, Ihre Quellentabelle sieht ungefähr so aus:
%Vor% Verwenden Sie zuerst ddply
, um die Prozentsätze zu berechnen, und cast
, um die Daten im erforderlichen Format darzustellen
Im Vergleich zu Ihrem Beispiel fehlen die Zeilensummen, diese müssen separat hinzugefügt werden.
Aber nicht sicher, ob diese Lösung eleganter ist als die, die Sie derzeit haben.
Hier ist ein Einzeiler mit tapply
und prop.table
. Es ist nicht auf irgendwelche Hilfspakete angewiesen:
geben:
%Vor%oder das ist noch kürzer:
%Vor%Tags und Links r