ho creare il set di dati da
data <- read.table(text=" Date Hour Melbourne Southern Flagstaff
1 2009-05-01 0 0 5 17
2 2009-05-01 2 0 2 1
3 2009-05-01 1 0 11 0
4 2009-05-01 3 0 3 8
5 2009-05-01 4 0 1 0
6 2009-05-01 5 0 49 79
7 2009-05-01 6 0 425 610",
header=TRUE,stringsAsFactors=FALSE)
Si può fare la somma con la funzione aggregate
:
byday <- aggregate(cbind(Melbourne,Southern,Flagstaff)~Date,
data=data,FUN=sum)
library(lubridate)
bymonth <- aggregate(cbind(Melbourne,Southern,Flagstaff)~month(Date),
data=data,FUN=sum)
Guardate ?aggregate
per capire la funzione di meglio. A partire con l'ultimo argomento (perché questo rende più facile spiegare) gli argomenti effettuare le seguenti operazioni:
FUN
è la funzione che deve essere utilizzato per l'aggregazione. Io uso sum
per riassumere i valori, ma potrei anche essere mean
, max
o qualche funzione che hai scritto tu stesso.
data
viene utilizzato per indicare il frame di dati che desidero aggregare.
- Il primo argomento indica alla funzione che cosa esattamente voglio aggregare. Sul lato sinistro di
~
, indico le variabili che voglio aggregare. Se ce n'è più di uno, vengono combinati con cbind
. Sul lato destro è la variabile in base alla quale i dati devono essere divisi. Mettendo Date
significa che l'aggregato somma le variabili per ciascun valore distinto di Date
.
Per l'aggregazione per mese, ho utilizzato la funzione month
dal pacchetto lubridate
. Fa ciò che ci si aspetta: restituisce un valore numerico che indica il mese per una determinata data. Forse è necessario prima installare il pacchetto entro il install.packages("lubridate")
.
Se si preferisce non utilizzare lubridate, si potrebbe fare la seguente invece:
data <- transform(data,month=as.numeric(format(as.Date(Date),"%m")))
bymonth <- aggregate(cbind(Melbourne,Southern,Flagstaff)~month,
data=data,FUN=sum)
Qui ho aggiunto una nuova colonna di dati che contiene il mese e poi aggregate per quella colonna.
Ricevo un errore sul libreria (lubridate) line. Doi è necessario importare manualmente il pacchetto? – user2787386
L'hai installato per primo? 'Installazione.pacchetti ("lubridate") ' –
Ci scusiamo per ... Sì, è necessario installare il pacchetto come descritto da @Marta Cz-C. – Stibu