【问题标题】:Ways to bypass maybe 'breaks' do not span range of x?绕过“休息”的方法可能不跨越 x 范围?
【发布时间】:2021-09-13 21:27:13
【问题描述】:

使用 R 中的 PlantGrowth 内置数据集,我试图制作一个直方图,其中的 bin 从 3.4 开始并以 0.4 递增。数据集中的取值范围是[3.59, 6.31]。

当我运行seq(3.4, 6.31, 0.4) 时,我得到:

[1] 3.4 3.8 4.2 4.6 5.0 5.4 5.8 6.2

所以,我发现问题在于创建的 bin 中忽略了最大值。 有没有办法让我说垃圾箱的数量等于seq(3.4, 6.31, 0.4)的长度加1?还是将最大值加 0.4 以便包含最后一个值会更好?这些中的任何一个都会使散点图不正确吗?

上面是我使用第二个想法制作的直方图图像。如何获取 x 轴数字以反映 bin 边缘的值?

【问题讨论】:

  • 你使用的是cut,那么你可以指定breaks = c(seq(3.4, max(PlantGrowth$weight), 0.4), Inf)

标签: r histogram


【解决方案1】:

0.4 也添加到to= 参数中:

S <- seq(3.4, 6.31, 0.4)
table(cut(PlantGrowth$weight, S), useNA = "always")
# (3.4,3.8] (3.8,4.2] (4.2,4.6]   (4.6,5]   (5,5.4] (5.4,5.8] (5.8,6.2]      <NA> 
#         1         3         4         5         8         4         4         1 

&lt;NA&gt; 是你的问题所在。

固定:

S <- seq(3.4, 6.31 + 0.4, 0.4)
table(cut(PlantGrowth$weight, S), useNA = "always")
# (3.4,3.8] (3.8,4.2] (4.2,4.6]   (4.6,5]   (5,5.4] (5.4,5.8] (5.8,6.2] (6.2,6.6]      <NA> 
#         1         3         4         5         8         4         4         1         0 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多