从不同的日期R中选择值

时间:2013-04-26 14:18:59

标签: r date aggregate average

我使用以下数据框快速提问。

x <- c("2012-01-01","2012-01-01","2012-01-01","2012-01-02","2012-01-02","2012-01-03","2012-01-03")

y <- c(1,2,3,4,5,6,7)

data.frame(x,y)

现在我想取x中指定的每个日期的y的平均值,我该怎么做?我有困难因为每个日期的观察量不同 非常感谢

1 个答案:

答案 0 :(得分:2)

在您的示例中,您可以使用aggregate函数,如下所示:

df <- data.frame(x,y)
aggregate( y ~ x , df , mean )
#           x   y
#1 2012-01-01 2.0
#2 2012-01-02 4.5
#3 2012-01-03 6.5

但这是许多方法之一,你可以做到这一点,最佳将取决于你的真实数据的结构。

data.table解决方案可能是:

require( data.table )
DT <- data.table(df)
DT[, mean(y) , by = x ]
#           x  V1
#1: 2012-01-01 2.0
#2: 2012-01-02 4.5
#3: 2012-01-03 6.5

或者,如果您想添加一个包含您可以使用的平均值的新列:

DT[ , "Mean" := mean(y) , by = x ]