【问题标题】:Selecting values from different Dates R从不同的日期选择值 R
【发布时间】:2013-04-20 18:19:37
【问题描述】:

我有一个使用以下数据框的快速问题。

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 的平均值,我该怎么做?我有困难,因为每个日期的观察量不同 非常感谢

【问题讨论】:

  • 看看函数aggregatebytapply。只需通过 ?by 来浏览帮助页面中的示例
  • x 和 y 中的元素个数不相同。调用 data.frame(x, y) 时没有报错吗?
  • 是的,抱歉,这是一个快速示例,现在已编辑

标签: r date aggregate average


【解决方案1】:

在您的示例中,您可以像这样使用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 ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    相关资源
    最近更新 更多