我有以下数据集(实际数据的简单版本)“data”,并且想分别使用权重 w1 和 w2 计算变量 x1 和 x2 的加权平均值,分为两组(由变量 n 确定的组) )。
data <- data.frame(n = c(1,1,1,2,2,2), x1 = c(4,5,4,7,5,5), x2 = c(7,10,9,NaN,11,12), w1 = c(0,1,1,1,1,1), w2 = c(1,1,1,0,0,1))
我尝试使用 with() 来执行此操作,但是当我运行此命令时出现错误:
with(data, aggregate(x = list(x1=x1, x2=x2), by = list(n = n), FUN = weighted.mean, w = list(w1 = w1,w2 = w2)))
另一方面,如果未指定权重,则它可以工作,但在这种情况下,将使用默认级别权重(即与使用 FUN=mean 相同)。
with(data, aggregate(x = list(x1=x1, x2=x2), by = list(n = n), FUN = weighted.mean))
这个问题类似于按组和列的加权平均值 https://stackoverflow.com/questions/14145859/weighted-means-by-group-and-column,除了我的问题包括不同列的不同权重。我尝试使用数据表,但它遇到了与 with() 相同的加权错误。
预先感谢您的任何帮助。