从星期一开始每周将数据汇总到每周级别

use*_*020 6 r time-series aggregate-functions

我有一个数据框,如,

2015-01-30     1       Fri
2015-01-30     2       Sat
2015-02-01     3       Sun
2015-02-02     1       Mon
2015-02-03     1       Tue
2015-02-04     1       Wed 
2015-02-05     1       Thu
2015-02-06     1       Fri
2015-02-07     1       Sat
2015-02-08     1       Sun
Run Code Online (Sandbox Code Playgroud)

我希望将其汇总到每周级别,以便每周从"星期一"开始并以"星期日"结束.因此,在上面的汇总数据中,第一周应该在2015-02-01结束.

输出应该看起来像上面的东西

firstweek    6  
secondweek   7
Run Code Online (Sandbox Code Playgroud)

我试过这个,

data <- as.xts(data$value,order.by=as.Date(data$interval))
weekly <- apply.weekly(data,sum)
Run Code Online (Sandbox Code Playgroud)

但在最后的结果中,每周都是从周日开始.

Akh*_*air 2

这应该有效。我已经调用了数据框m并命名了可能与您的不同的列。

library(plyr) # install.packages("plyr")

colnames(m) = c("Date", "count","Day")
start  = as.Date("2015-01-26")
m$Week <- floor(unclass(as.Date(m$Date) - as.Date(start)) / 7) + 1
m$Week = as.numeric(m$Week)
m %>% group_by(Week) %>% summarise(count = sum(count))
Run Code Online (Sandbox Code Playgroud)

plyr 库非常适合数据操作,但它只是获取周数的一个粗略技巧。