Ich habe also einen Datenrahmen, der eine Datumsspalte, eine Stundenspalte und eine Reihe anderer numerischer Spalten enthält. Jede Zeile im Datenrahmen ist 1 Stunde von 1 Tag für ein ganzes Jahr.
Der Datenrahmen sieht so aus:
%Vor%Die Stunden sind nicht in Ordnung, da dies aus einem anderen Datenrahmen besteht.
Ich möchte die Werte in den numerischen Spalten nach Monat und möglicherweise nach Tag summieren. Weiß jemand wie ich das machen kann?
Ich erstelle den Datensatz mit
%Vor% Sie können die Summierung mit der Funktion aggregate
:
Sehen Sie sich ?aggregate
an, um die Funktion besser zu verstehen. Beginnend mit dem letzten Argument (weil das das Erklären einfacher macht) machen die Argumente folgendes:
FUN
ist die Funktion, die für die Aggregation verwendet werden soll. Ich verwende sum
, um die Werte zusammenzufassen, aber ich könnte auch mean
, max
oder eine Funktion sein, die du selbst geschrieben hast. data
wird verwendet, um den Datenrahmen anzugeben, den ich zusammenfassen möchte. ~
gebe ich die Variablen an, die ich aggregieren möchte. Wenn es mehrere gibt, werden sie mit cbind
kombiniert. Auf der rechten Seite befindet sich die Variable, nach der die Daten aufgeteilt werden sollen. Putting Date
bedeutet, dass Aggregat die Variablen für jeden einzelnen Wert von Date
zusammenfassen wird. Für die Aggregation nach Monat habe ich die Funktion month
aus dem Paket lubridate
verwendet. Es tut was man erwartet: es gibt einen numerischen Wert zurück, der den Monat für ein bestimmtes Datum anzeigt. Vielleicht müssen Sie zuerst das Paket nach install.packages("lubridate")
installieren.
Wenn Sie lubridate nicht verwenden möchten, können Sie stattdessen Folgendes tun:
%Vor%Hier habe ich eine neue Spalte zu Daten hinzugefügt, die den Monat enthalten und dann durch diese Spalte aggregiert.
Dies könnte eine andere Möglichkeit sein, dies mit data.table
oder mit dplyr
Tags und Links r data.table dplyr aggregate lubridate