我正在计算价格数据集的 Tukey 异常值检测算法。
问题是我需要按组计算它(同一数据集中包含的另一个变量),在aggregate
我需要仅使用百分位数 5 到中位数和一个仅使用从中位数到百分位数 95 的数据。
据我所知,命令是这样的:aggregate(doc$
x , by=list(doc$
group ), FUN=mean, trim = 0.05)
,如果在打印结果之前对称地修剪平均值,则从数据中取上下 5%(总共 10%)。我不知道如何进行接下来的步骤,我需要计算以中位数为分割点的上下均值,仍然保持上下 5% 的折扣。
medlow <- aggregate(doc1$`rp`, by=list(doc1$`Código Artículo`), FUN=mean,trim =c(0.05,0.5))
medup <- aggregate(doc1$`rp`, by=list(doc1$`Código Artículo`), FUN=mean,trim =c(0.5,0.95))
medtrunc <- aggregate(doc1$`rp`, by=list(doc1$`Código Artículo`), FUN=mean,trim = 0.05)
我希望输出是我需要的每个组的数字,但它去了
mean.default(X[[i]], ...) 中的错误:“trim”必须是长度为 1 的数字。