【发布时间】:2014-08-09 02:32:48
【问题描述】:
我正在尝试使用函数weighted.mean 聚合数据框并继续出现错误。我的数据如下所示:
dat <- data.frame(date, nWords, v1, v2, v3, v4 ...)
我尝试了类似的方法:
aggregate(dat, by = list(dat$date), weighted.mean, w = dat$nWords)
但是得到了
Error in weighted.mean.default(X[[1L]], ...) :
'x' and 'w' must have the same length
还有另一个线程使用 plyr 回答了这个问题,但只有一个变量,我想以这种方式聚合我的所有变量。
【问题讨论】:
-
是您在代码中拼错了
weighted.mean的问题吗? -
我相信
weighted.mean期望w是由aggregate切片的块的长度,它对应于每个因子级别(或组合)的元素数。因此,您只能使用一个权重,假设每个因子水平的元素数量相等。您可能应该编写一个自定义函数并使用mapply为aggregateing 准备w。
标签: r aggregate weighted-average