2013-07-21 110 views
0

我試圖完全在R中計算w/w增長率。我可以使用excel或用ruby進行預處理,但這不是重點。R每日時間序列數據週上一週的增長率計算

data.frame例如

 date gpv  type 
1 2013-04-01 12900 back office 
2 2013-04-02 16232 back office 
3 2013-04-03 10035 back office 

我想這樣做的「型」因素,我需要的日期類型列包裝成周。然後計算一週的增長周。

我想我需要做ddply按周分組 - 用自定義函數來確定一個日期是否在給定的一週內?

然後,在此之後,使用diff並查找除以前一週的除以週數的增長。

然後我會繪製每週/每週的增長,或使用data.frame來導出它。

這是closed但有相同的有用的想法。

回答

0

更新:答案與ggplot:

所有下同,只是用它來代替plot

ggplot(data.frame(week=seq(length(gr)), gr), aes(x=week,y=gr*100)) + geom_point() + geom_smooth(method='loess') + coord_cartesian(xlim = c(.95, 10.05)) + scale_x_discrete() + ggtitle('week over week growth rate, from Apr 1') + ylab('growth rate %') 

(舊,正確的答案,但只使用圖)

嗯,我認爲這是它:

df_net <- ddply(df_all, .(date), summarise, gpv=sum(gpv)) # df_all has my daily data. 
df_net$week_num <- strftime(df_net$date, "%U") #get the week # to 'group by' in ddply 
df_weekly <- ddply(df_net, .(week_num), summarize, gpv=sum(gov)) 

gr <- diff(df_weekly$gpv)/df_weekly$gpv[-length(df_weekly$gpv)] #seems correct, but this I don't understand via: http://stackoverflow.com/questions/15356121/how-to-identify-the-virality-growth-rate-in-time-series-data-using-r 
plot(gr, type='l', xlab='week #', ylab='growth rate percent', main='Week/Week Growth Rate') 

任何更好的解決方案那裏?