Berechnung des Prozentsatzes der Zeilensumme mit Plyr

8

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")

%Vor%

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

    
MW Frost 23.11.2009, 19:13
quelle

2 Antworten

4

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

%Vor%

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.

    
learnr 24.11.2009, 05:36
quelle
4

Hier ist ein Einzeiler mit tapply und prop.table . Es ist nicht auf irgendwelche Hilfspakete angewiesen:

%Vor%

geben:

%Vor%

oder das ist noch kürzer:

%Vor%     
G. Grothendieck 25.06.2013 17:34
quelle

Tags und Links