Wie kann ich ddply mit variierenden .variablen verwenden?

9

Ich verwende ddply, um einige data.frame nach verschiedenen Kategorien zusammenzufassen:

%Vor%

Das funktioniert reibungslos, aber oft kalkuliere ich gerne Verhältnisse, was bedeutet, dass ich durch die Summe der Gruppe dividieren muss. Wie kann ich eine solche Summe innerhalb desselben ddply -Aufrufs berechnen?

Nehmen wir an, ich hätte gerne den Anteil der Beobachtungen in Gruppe A, die in der Größenklasse 1 sind. Offensichtlich muss ich zuerst die Summe aller Beobachtungen in der Größenklasse 1 berechnen. Natürlich könnte ich das mit zwei ddply-Anrufen machen, aber die Benutzung eines einzigen Anrufs wäre bequemer. Gibt es einen Weg dazu?

BEARBEITEN: Ich wollte nicht zu spezifisch fragen, aber ich merke, dass ich die Leute hier gestört habe. Also hier ist mein spezifisches Problem. In der Tat habe ich ein Beispiel, das funktioniert, aber ich halte es nicht wirklich für geschickt. Plus es hat einen Mangel, den ich überwinden muss: es funktioniert nicht richtig mit anwenden.

%Vor%

Wie Sie sehen können, beabsichtige ich, dies über verschiedene kategorische Variablen auszuführen. Im Beispiel habe ich nur zwei (category, categoryA), aber in der Tat habe ich mehr, also wäre die Verwendung von apply mit meiner Funktion wirklich nett, aber irgendwie funktioniert es nicht richtig.

%Vor%

.. gibt eine Warnmeldung und einen seltsamen Namen (newX [, i]) für die Kategorie var.

zurück

Also wie kann ich das a) eleganter machen und b) das Problem beheben?

    
Matt Bannert 17.01.2012, 16:12
quelle

1 Antwort

3

Das scheint einfach zu sein, daher kann mir ein Aspekt Ihrer Frage fehlen.

Definieren Sie zuerst eine Funktion, die die gewünschten Werte in jeder Ebene von group berechnet. Verwenden Sie dann .(group, size) zum Teilen des data.frames, und verwenden Sie dann .(group) , und wenden Sie die neu definierte Funktion auf jedes Teilstück an.

%Vor%     
Josh O'Brien 17.01.2012 20:53
quelle

Tags und Links