1

我有以下格式的一些数据:

    date     x     
    2001/06  9949 
    2001/07  8554  
    2001/08  6954 
    2001/09  7568 
    2001/10 11238  
    2001/11 11969 
    ... more rows

我想提取每个月的 x 平均值。我尝试了一些聚合代码,但失败了。感谢您提供任何帮助。

4

2 回答 2

1

在这里,我模拟了一个df用更多数据调用的数据框:

df <- data.frame( 
      date = apply(expand.grid(2001:2012,1:12),1,paste,collapse="/"),
      x = rnorm(12^2,1000,1000),
      stringsAsFactors=FALSE)

使用date构造向量的方式,您可以通过删除前四位数字后跟正斜杠来获得月份。在这里,我将其用作索引变量tapply来计算均值:

with(df, tapply(x, gsub("\\d{4}/","",date), mean))
于 2012-08-16T13:24:17.367 回答
0

对不起...只是创建一个月序列向量然后使用tapply。这很容易:

m.seq = rep(c(6:12, 1:5), length = nrow(data))
m.means = tapply(data$x, m.seq, mean)

但无论如何感谢您的评论!

于 2012-08-16T13:07:47.240 回答