在 R 中按月、星期几、小时和分钟聚合

Aggregate by month,day of week hour and min in R

我有一个包含多个文件的文件夹,其中每个文件的名称都是各自的用户 ID。像这样:

         Time           Sms
 1 2012-01-01 00:00:00  10
 2 2012-01-01 00:30:00  11
 3 2012-01-01 01:00:00  13
 4 2012-01-01 01:30:00  10

如何按月、周、小时和分钟进行聚合?像这样:

Month DayofWeek hour min  SMS
 1      Mon      0    0   14   <-mean 
 1      Mon      0   30   12
 1      Mon      1    0   17
 1      Mon      1   30   21
 .............................
 12    Sunday    23  30   12 

我在将每小时数据汇总到每日数据时遇到了类似的问题。这是对我有用的代码。

fun <- function(s,i,j) { sum(s[i:(i+j-1)]) }

radday<-sapply(X=seq(1,24*nb_of_days,24),FUN=fun,s=your_time_series,j=24)

这对一段时间内的数据求和 j,在我的例子中,因为我对 24 小时求和,所以是 24。通过更改 j 值,您可以针对不同的时间段进行调整,日,周,月假设你有一个固定的时期。

感谢您的帮助。我通过应用此代码解决了我的问题:

df<-aggregate(Sms~month(Time)+weekdays(Time)+hour(Time)+minute(Time),df,FUN='mean')