【问题标题】:monthly average of working days data月平均工作日数据
【发布时间】:2012-12-02 16:52:51
【问题描述】:

我有每日时间序列(工作日),我想将其转换为月平均值。

日期格式为%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")

【问题讨论】:

  • 欢迎来到 SO。如果您可以 dput 您的每日时间序列,例如 dput(yourTS),那就太好了
  • 如何使用 xts apply.monthly 函数:apply.monthly(x,mean) 其中x 是一个 xts 对象
  • 结构(c(309L, 319L, 329L, 339L, 348L, 374L, 384L, 394L, 404L, 413L, 2317L, 2327L, 2337L, 2347L, 2356L, 22802L, 2342L, 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= "因素")

标签: r time average


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    相关资源
    最近更新 更多