hist() 中断要么不均匀,要么排除一个条?

问题描述 投票:0回答:1

几乎可以肯定这是一个令人头疼的简单解决方案......

我想使用一组直方图作为

pairs()
图表中的对角线,其中不同的评分量表项目是相关的。 (通常这些是范围从“1”到“5”的整数变量,但有时是“1”到“7”、“-3”到“3”等,或者作为范围从“5”到“25”的总和范围'.)

所以我希望直方图为标度中的每个级别显示一个条形:1-5 标度为 5 个条形,1-7 标度为 7 个条形,等等。

但是

hist()
函数却为我提供了 1-5 级的 8 个条、1-7 级的 6 个条、1-9 级的 8 个条等。

n <- 128
set.seed(42)
x1 <- sample(c(1:5), size = n, replace = TRUE) 
x2 <- sample(c(1:7), size = n, replace = TRUE) 
x3 <- sample(c(1:9), size = n, replace = TRUE)
hist(x1, breaks = "Sturges", right = TRUE)

x1 histogram

hist(x2, breaks = "Sturges", right = TRUE)

x2 histogram

hist(x3, breaks = "Sturges", right = TRUE)

x3 histogram

创建于 2024-08-03,使用 reprex v2.1.1

如果我使用

breaks = "FD"
breaks = "Scott"
选项,那么我得到的条数总是比值的数量少 1 个。

更改

right = TRUE
right = FALSE
选项只会更改省略的栏。

我希望这个问题与

hist()
中的“漂亮”过程有关,但我不知道如何解决它。

有什么想法吗?

r histogram
1个回答
0
投票

您可以将显式值传递给 hist() 的 breaks 参数来控制数据的分箱方式。例如,您可以通过设置 Breaks = 0:5 来获得 x1 值的五个 bin。

n <- 128
set.seed(42)
x1 <- sample(c(1:5), size = n, replace = TRUE) 
table(x1)
#> x1
#>  1  2  3  4  5 
#> 29 34 15 24 26
hist(x1, breaks = 0:5)

创建于 2024-08-02,使用 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.