【发布时间】:2020-10-08 11:13:52
【问题描述】:
我正在尝试跨所有数值变量计算组变量 X1 的加权平均值,这是一些示例数据
set.seed(123)
X1=rep(c("A", "B", "C"), each = 4)
Y1=as.numeric(seq(1,12,by=1))
Y2=sample(1:5,12,TRUE)
Y3=sample(10:20,12,TRUE)
wgt <- abs(rnorm(12)*10)
df <- data.frame(X1,Y1,Y2,Y3,wgt)
这是我用来计算 X1 的常规平均值的代码
aggregate( df[, sapply(df, is.numeric)] , by=list(df$X1) , FUN=mean, na.rm=TRUE)
我想计算权重平均值,权重变量是wgt。我尝试了这两个代码,但都没有工作。我尝试了许多不同的方法,但没有任何效果。
aggregate( df[, sapply(df, is.numeric)] , by=list(df$X1) , FUN=weighted.mean(x, w=df$wgt), na.rm = TRUE)
aggregate( df[, sapply(df, is.numeric)] , by=list(df$X1) , FUN=weighted.mean, w=df$wgt, na.rm = TRUE)
我无法调整 weighted.mean 函数。谁能告诉我哪里出错了?在这种情况下甚至可以使用此功能吗? 任何帮助是极大的赞赏。谢谢
【问题讨论】:
标签: r