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)
但在最后的结果中,每周都是从周日开始.
这应该有效。我已经调用了数据框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 库非常适合数据操作,但它只是获取周数的一个粗略技巧。