因此,我使用plotrix库用一些权重来绘制直方图,直方图如预期的那样显示,但当我尝试将平均值作为一条垂直线时,它根本不会出现。
下面是我的代码片段:
library("plotrix")
library("zoom")
vals = seq.int(from = 52.5 , to = 97.5 , by = 5)
weights <- c(18.01,18.26,16.42,14.07,11.67,9.19,6.46,3.85,1.71,0.34)/100
mean <- sum(vals*weights)
wh <- weighted.hist(x = vals , w = weights , freq = FALSE)
abline(v = mean)abline()似乎只适用于正常的hist()函数。
如果这个问题听起来很愚蠢,我很抱歉,我是R新手,但是我做了我的研究,却找不到任何有用的信息。
提前谢谢。
发布于 2021-07-12 03:32:45
您应该提供数据的示例。你对加权平均数的计算只有当你的权重之和为1时才是正确的。如果它们没有,你应该使用weighted.mean(vals, weights)或sum(vals * weights/sum(weights))。下面的示例与weighted.hist手册页(help(weighted.hist))上的示例略有不同:
vals <- sample(1:10, 300, TRUE)
weights <- (101:400)/100
weighted.hist(vals, weights, breaks=1:10, main="Test weighted histogram")
(mean <- weighted.mean(vals, weights))
# [1] 5.246374直方图从1开始,但x轴坐标上为0,因此我们需要减去1才能得到正确的位置:
abline(v=mean-1, col="red")

使用您的数据,我们需要识别第一个边界,以调整平均值,使其在正确的位置绘制“
wh$breaks[1]
# [1] 52.5
abline(v=mean - wh$breaks[1], col="red")

https://stackoverflow.com/questions/68341396
复制相似问题