我有时间序列数据,我如何做月度报告和变量的平均值?(使用R)

我有时间序列数据,我如何做月度报告和变量的平均值?(使用R),r,date,time-series,analysis,R,Date,Time Series,Analysis,我的时间序列数据看起来像是6个月的8/18/2012 11:18:00 PM,我如何将它们按月进行子集,并在一个月内对一个变量进行平均?(使用R) 非常感谢您能使用xts软件包。首先,我生成您的数据。在这里,我创建了一个6个月、半天的数据。长数据 dat <- data.frame(date = as.POSIXct('8/18/2012 11:18:00', format='%m/%d/%Y %H:%M:%S') +

我的时间序列数据看起来像是6个月的8/18/2012 11:18:00 PM,我如何将它们按月进行子集,并在一个月内对一个变量进行平均?(使用R)


非常感谢您能使用
xts
软件包。首先,我生成您的数据。在这里,我创建了一个6个月、半天的数据。长数据

dat <- data.frame(date = as.POSIXct('8/18/2012 11:18:00',
                                    format='%m/%d/%Y %H:%M:%S') + 
                         seq(0,by = 60*60*12,length.out=365),
                  value = rnorm(365))
最后,我使用方便的函数
apply.monthly
相当于
lappy
来获得如下内容:

apply.monthly(dat.xts,mean)
2012-08-31 23:18:00  0.03415933
2012-09-30 23:18:00  0.02884122
2012-10-31 22:18:00 -0.27767240
2012-11-30 22:18:00 -0.15614567
2012-12-31 22:18:00 -0.02595911
2013-01-31 22:18:00 -0.23284335
2013-02-16 10:18:00  0.14537790

您可以
格式化
日期,并使用
聚合
计算平均值(感谢@agstudy提供样本数据):


@玛丽:欢迎来到苏。重要的是你要提供一个可复制的例子,否则我们所有的答案都只是猜测。您可以(可能必须)阅读更多关于如何实现此功能的信息。非常感谢,但此功能是否需要xts软件包?它的价值是什么?当我使用它时,R给出了错误!如何通过我的数据修改此函数中的日期?@Mary否,这些函数包含在R随附的标准包中。
value
是agstudy的answercool示例中指定的data.frame中的一个变量。谢谢我找了一份申请表,但没找到。有没有什么方法可以让我得到每小时数据的平均值,并为它设定一个条件?(如果小时平均值小于2,则从我的数据中丢弃该特定小时内的金额,并获得新的小时平均值,甚至新的月平均值?感谢
apply。小时平均值
存在。您可以调用它一次,然后删除平均值>threhold….的小时数。)。。。。
apply.monthly(dat.xts,mean)
2012-08-31 23:18:00  0.03415933
2012-09-30 23:18:00  0.02884122
2012-10-31 22:18:00 -0.27767240
2012-11-30 22:18:00 -0.15614567
2012-12-31 22:18:00 -0.02595911
2013-01-31 22:18:00 -0.23284335
2013-02-16 10:18:00  0.14537790
aggregate(value~format(date,"%Y-%m"),dat,FUN=mean)
  format(date, "%Y-%m")       value
1               2012-08 -0.31409786
2               2012-09 -0.37585310
3               2012-10 -0.04552703
4               2012-11 -0.05726177
5               2012-12  0.04822608
6               2013-01  0.03412790
7               2013-02 -0.10157931