2012-12-02 111 views
0

我有每天的时间系列(工作日),我希望以月平均值进行转换。工作日数据的月平均值

日期格式为%d/%m/%Y,此外还有一些遗漏的观察结果(NA)。

我该怎么做?


# my data 
timeseries <- structure(c(309L, 319L, 329L, 339L, 348L, 374L, 384L, 394L, 404L, 413L, 
    2317L, 2327L, 2337L, 2347L, 2356L, 2382L, 2392L, 2402L, 2412L, 2421L, 2447L, 2457L, 
    422L, 432L, 441L, 467L, 477L, 487L, 497L, 506L, 2467L, 2477L, 2487L, 2497L, 2506L, 
    2532L, 2542L, 2552L, 2562L, 2571L, 2597L, 2607L, 2617L, 2627L, 2636L, 
    [...]), .Label = c("01/01/1992", "01/01/1993", "01/01/1996", "01/01/1997", "01/01/1998", "01/01/1999", "01/01/2001 [...]), class = "factor") 
+1

欢迎来到SO。如果你可以**输出**你的日常时间系列,如dput(yourTS) – agstudy

+1

如何使用xts'apply.monthly'函数:'apply.monthly(x,mean)'其中'x'是一个xts对象 – chandler

+0

结构(c(309L,319L,329L,339L,348L,374L,384L,394L,404L, 413L,2317L,2327L,2337L,2347L,2356L,2382L,2392L,2402L, 2412L,2421L,2447L, 2457L,422L,432L,441L,467L,477L,487L, 497L,506L,2467L,2477L,2487L,2497L,2506L,2532L,2542L, 2552L,2562L,2571L,2597L,2607L,2617L,2627L,2636L, [...],.Label = c(“01/01/1992”,“01/01/1993”,“01/01/1996”, “01/01/1997”,“01/01/1998年“,”01/01/1999“,”01/01/2001 [...] ),class =“factor”) – BrunoGG

回答

1

你可以做这么多,很多方面。使用基本R包:

d <- data.frame(Date=Sys.Date()+1:60, Data=1:60) 
tapply(d$Data, format(d$Date,"%Y%m"), mean) 
aggregate(d$Data, by=list(Date=format(d$Date,"%Y%m")), mean) 
+0

谢谢,我设法解决了这个问题。 – BrunoGG