有没有一种简单的方法可以绘制相对频率直方图

时间:2020-06-11 02:44:37

标签: r statistics

假设我有30次试验,1次试验,40次试验2次和50次试验3次。如果我使用此代码,则:

library(lattice)
a <- c(30,40,50)
histogram(a)

然后,结果数将显示为范围而不是频率。有没有比列出3次50次更方便的方法?


编辑:在一项实验中,研究人员正在计算手机掉落后会损坏多少次。第一次试用后破裂了30部手机,第二次试用后破裂了40部,第三次试用后破裂了50部。因此,我想提出这种趋势。但是,在完成之前的代码后,该图如下所示: graph 在此,R将我的数据视为一种情况。因此,我正在寻找使这些数据以案件频发的方式出现的方法。

1 个答案:

答案 0 :(得分:1)

我认为barplot是实现这一目标的最好方法,就像其他人在评论中说的那样,但是看来您还想知道一种“取消分配”计数以创建计数的方法。直方图。您可以使用rep

a <- rep(1:3, c(30, 40, 50))
a
#>   [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2
#>  [35] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [69] 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
#> [103] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

如果您确实需要,可以使用直方图进行绘制,例如:

hist(a, breaks = 0:3 + .5, main = "frequency", xlab = "n", axes = FALSE)
axis(side = 2, at = 0:5 * 10)
axis(side = 1, at = 1:3)

enter image description here

但是,直方图并不是您真正想要的。直方图是一种通过将连续数据放入“箱”中来计数连续数据的方法,因此在直方图中,x轴是连续的。以这种方式进行绘制意味着可以将手机断开1.6倍或2.38倍。

如果要显示离散事件的计数,则应使用条形图。这具有适合计数数据的优点,并且易于创建:

 barplot(c(30,40,50), names.arg = 1:3, col = "lavender", main = "Broken phones")

enter image description here