假设我有30次试验,1次试验,40次试验2次和50次试验3次。如果我使用此代码,则:
library(lattice)
a <- c(30,40,50)
histogram(a)
然后,结果数将显示为范围而不是频率。有没有比列出3次50次更方便的方法?
编辑:在一项实验中,研究人员正在计算手机掉落后会损坏多少次。第一次试用后破裂了30部手机,第二次试用后破裂了40部,第三次试用后破裂了50部。因此,我想提出这种趋势。但是,在完成之前的代码后,该图如下所示: graph 在此,R将我的数据视为一种情况。因此,我正在寻找使这些数据以案件频发的方式出现的方法。
答案 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)
但是,直方图并不是您真正想要的。直方图是一种通过将连续数据放入“箱”中来计数连续数据的方法,因此在直方图中,x轴是连续的。以这种方式进行绘制意味着可以将手机断开1.6倍或2.38倍。
如果要显示离散事件的计数,则应使用条形图。这具有适合计数数据的优点,并且易于创建:
barplot(c(30,40,50), names.arg = 1:3, col = "lavender", main = "Broken phones")