Aggregiert Daten in einer Spalte basierend auf Werten in einer anderen Spalte

8

Ich weiß, dass es einen einfachen Weg gibt, dies zu tun ... aber ich kann es nicht herausfinden.

Ich habe einen Datenrahmen in meinem R-Skript, der ungefähr so ​​aussieht:

%Vor%

Beachten Sie, dass A, B und C Spaltennamen sind. Und ich versuche, Variablen wie folgt zu erhalten:

%Vor%

Jeder einfache Weg, dies zu tun? Ich möchte im Grunde mit einem Datenrahmen enden, der so aussieht:

%Vor%

Dabei steht "num" für die Häufigkeit, mit der dieser bestimmte A-Wert aufgetreten ist, und "totalB" ist die Summe der B-Werte für den A-Wert.

    
CodeGuy 26.09.2011, 20:03
quelle

4 Antworten

13

Ich würde aggregate verwenden, um die beiden Aggregate und dann merge sie in einen einzigen Datenrahmen zu bekommen:

%Vor%     
NPE 26.09.2011, 20:16
quelle
4

Hier ist eine Lösung, die das Paket plyr verwendet

%Vor%     
Ramnath 26.09.2011 20:30
quelle
4

Hier ist eine Lösung mit data.table für Speicher- und Zeiteffizienz

%Vor%

Um nur die Zeilen zu unterteilen, in denen C==1 steht (wie der Kommentar zu @aix antwortet)

%Vor%     
mnel 13.09.2012 04:24
quelle
1

In dplyr :

%Vor%     
Jens Leerssen 08.06.2017 22:27
quelle

Tags und Links