在 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')
我有一个包含多个文件的文件夹,其中每个文件的名称都是各自的用户 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')