2010-01-29 6 views
5

Si j'ai des données comme celui-ciggplot2: moyenne dans la fonction à temps

DF <- data.frame(
    date = seq(Sys.Date()-1000, len=1000, by="1 day")[sample(1000, 500)], 
    price = runif(500) 
) 

Comment puis-je tracer par exemple moyenne du prix en fonction du temps, par ex. en mois, en utilisant ggplot2?

+0

Merci beaucoup pour fournir un générateur de données! +1 –

Répondre

10

Vous devez convertir vos dates en mois en utilisant cut(,"months"), puis appliquer mean à chaque mois en utilisant ggplot stat_summary. Voici comment le faire en qplot, qui est un emballage de commodité compact à ggplot.

qplot(as.Date(cut(date,"months")), 
    price, data=DF, stat="summary", fun.y="mean", xlab="date") 

alt text http://www.imagechicken.com/uploads/1264786975079660800.png


terrain de base peut aussi le faire:

plot(aggregate(DF$price, list(as.Date(cut(DF$date, "month"))), mean)) 

alt text http://www.imagechicken.com/uploads/1264786673030283100.png