2

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

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))
4

2 回答 2

5

没有内置函数,但这会做到:

sum(x*filter) / sum(filter)
于 2013-08-02T17:47:35.717 回答
2

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

于 2013-08-03T05:59:13.217 回答