Wie summiere ich die Werte von Spalten in mehreren Tabellen, wenn Tabellen unterschiedliche Längen haben?

8

Okay, das sollte einfach sein, aber ich suche nach einer Lösung, die so schnell wie möglich ist.

Nehmen wir an, ich habe 3 Tabellen (die Anzahl der Tabellen wird viel größer sein):

%Vor%

Das bekommen wir:

%Vor%

Was ich schnell haben möchte, damit es mit vielen großen Tischen funktioniert, ist dies:

%Vor%

Im Grunde genommen werden die Tabellen über alle names aggregiert. Gibt es eine elementare Funktion, die das tut, was mir fehlt? Danke für Ihre Hilfe!

    
swolf 17.06.2015, 12:49
quelle

3 Antworten

12

Wir verketten ( c ) die Ausgabe tab , um 'v1' zu erstellen, verwenden tapply , um sum der Elemente zu erhalten, die nach names dieses Objekts gruppiert sind.

%Vor%     
akrun 17.06.2015, 13:02
quelle
5

Sie könnten rowsum() verwenden. Die Ausgabe unterscheidet sich geringfügig von der angezeigten Ausgabe, Sie können sie jedoch nach den Berechnungen immer neu strukturieren. rowsum() ist bekanntlich sehr effizient.

%Vor%

Hier ist ein Benchmark mit dem Vorschlag von akrun data.table , der ebenfalls hinzugefügt wurde.

%Vor%     
Rich Scriven 18.09.2015 01:11
quelle
1

Sie können dies versuchen

%Vor%     
Mamoun Benghezal 17.06.2015 13:01
quelle

Tags und Links