是否有一种惯用的方法来获得R中的向量化条件均值

时间:2013-08-02 17:42:15

标签: r mean

我想使用向量化条件平均值(当使用ddplytransform时)表示通过某个条件的条目的平均值。我想出了这个,但我想知道它是否可以使用内置函数或流行的包实现?

mean.conditional <- function(x, cond, zero = 0) {
  filter <- cond(x)
  return(sum(ifelse(filter, x, zero)) / sum(filter))
}

或者,以下功能可能更清晰:

mean.conditional <- function(x, filter) {
  return(sum(ifelse(filter, x, 0)) / sum(filter))

2 个答案:

答案 0 :(得分:5)

没有内置功能,但这样做:

sum(x*filter) / sum(filter)

答案 1 :(得分:2)

mean(x[cond(x)])能做你想做的吗?