2011-11-27 8 views

Répondre

1

Si DF est nos données de test prennent alors la moyenne sur tous les points de données ayant la même année et mois donnant objet zoo z et il complotent:

# test data 
DF <- data.frame(Time = as.POSIXct(Sys.Date() + 1:1000), data = 1:1000) 

library(zoo) 
z <- read.zoo(DF, aggregate = mean, FUN = as.yearmon) 
plot(z, type = "h") 
+0

Merci qui a fonctionné parfaitement. Pour faire l'histogramme j'ai assumé '1' à 'données' et mis en agrégat = somme – Nasir

0

Analysez-les (par exemple, via as.POSIXct()) afin que les objets DateTime appropriés s'affichent correctement.

Ensuite, utilisez une routine d'agrégation, et par exemple les packages zoo et xts en ont pour les structures indexées dans le temps, ou ddply plus généralement, ou vous pouvez utiliser les fonctions de base R.

Vous n'avez pas dit que vous vouliez afficher dans l'histogramme. Juste compte? Dans ce cas, voici un exemple simple:

R> set.seed(42)  # fix RNG 
R> zz <- data.frame(val=runif(100), ts=Sys.time() - 6*31*24*60*60*runif(100)) 
R> summary(zz)   # values over June to Nov 2011 period 
     val     ts       
Min. :0.000239 Min. :2011-06-01 09:56:20.50 
1st Qu.:0.259673 1st Qu.:2011-07-10 01:43:58.81 
Median :0.539714 Median :2011-08-14 22:19:12.73 
Mean :0.524479 Mean :2011-08-22 17:57:00.34 
3rd Qu.:0.763614 3rd Qu.:2011-10-11 10:24:16.34 
Max. :0.988892 Max. :2011-11-27 03:51:25.63 
R> zz$mon <- as.POSIXlt(zz$ts)$mon + 1 
R> summary(zz)   # now we have the month as a column 
     val     ts        mon  
Min. :0.000239 Min. :2011-06-01 09:56:20.50 Min. : 6.00 
1st Qu.:0.259673 1st Qu.:2011-07-10 01:43:58.81 1st Qu.: 7.00 
Median :0.539714 Median :2011-08-14 22:19:12.73 Median : 8.00 
Mean :0.524479 Mean :2011-08-22 17:57:00.34 Mean : 8.29 
3rd Qu.:0.763614 3rd Qu.:2011-10-11 10:24:16.34 3rd Qu.:10.00 
Max. :0.988892 Max. :2011-11-27 03:51:25.63 Max. :11.00 
R> ddply(zz, .(mon), "nrow") # so count rows by month 
    mon nrow 
1 6 17 
2 7 22 
3 8 18 
4 9 15 
5 10 14 
6 11 14 
R> 

et vous pourriez faire un histogramme facile de ces comptes par mois.

Questions connexes