我想使用矢量化条件平均值(当使用ddply
and时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))