如何在一个因子的图上添加平均值线?

时间:2017-05-17 13:32:43

标签: r bar-chart mean

我的文档和plot()的返回值存在问题。我想在图中添加一条平均值的水平线,但我无法计算它。我希望能够使用情节的价值,但我失败了。例如:

> x<-sample(5, 10, replace=TRUE)
> x
 [1] 3 5 1 4 5 4 2 4 1 5
> y<-plot(factor(x))
> y
     [,1]
[1,]  0.7
[2,]  1.9
[3,]  3.1
[4,]  4.3
[5,]  5.5

Output of plot command 显然,域和范围都是整数,那么绘图返回的这个数字究竟是什么意思,我怎样才能得到平均条形高度?

当然(如果没有更优雅的解决方案)我可以迭代计算每个项目数量的因子水平,然后取这些项目的平均值。此外,如果您使用hist()代替plot(),那么解决方案非常简单:abline(h=mean(hist(x)$counts))

2 个答案:

答案 0 :(得分:-1)

要添加水平线,只需说:

    abline(h = mean(x))

abline(h = whatever)给你一条水平线。 abline(y = whatever)给你一条垂直线。

答案 1 :(得分:-1)

我自己发明的(大多数?)复杂的解决方案可能是这样的:

abline(h=mean(unlist(lapply(min(x):max(x), function(ff) length(which(x == ff))))))

当然,此解决方案仅在x是一个因素且水平为数字时才有效;否则将min(x):max(x)替换为levels(x)

(对我来说更难理解)似乎是一个更简单的解决方案(来自@Marco Sandri):

abline(h=length(x)/length(y))