R include.hist中最低的参数有什么意义?

R include.hist中最低的参数有什么意义?,r,histogram,R,Histogram,在用于绘制直方图的hist函数中,有一个参数include.lowest,默认值为TRUE 根据我的理解,这个参数应该允许保持或不保持最低断点的最低界限,当断点被设置为向量时 但如果我尝试,作为一个纯人工的例子,一个命令如下: hist(c(1:100), breaks=c(1,2,10,50,100), include.lowest=FALSE) 我刚刚得到一个错误: Error in hist.default(c(1:100), breaks = c(1, 2, 10, 50, 100)

在用于绘制直方图的
hist
函数中,有一个参数
include.lowest
,默认值为TRUE

根据我的理解,这个参数应该允许保持或不保持最低断点的最低界限,当断点被设置为向量时

但如果我尝试,作为一个纯人工的例子,一个命令如下:

 hist(c(1:100), breaks=c(1,2,10,50,100), include.lowest=FALSE)
我刚刚得到一个错误:

Error in hist.default(c(1:100), breaks = c(1, 2, 10, 50, 100), include.lowest = FALSE) : 
  some 'x' not counted; maybe 'breaks' do not span range of 'x'
这里发生的是hist不允许不考虑完整数据(x)的绘图。如果include.lowest为false,则我的数据中的值“1”不会出现在直方图中的任何位置。但既然如此,include.lowest用于什么?我看不出在任何情况下,如果将其设置为false,会在不触发错误的情况下产生任何影响

注意:在我的解释中,我假设我保持默认的
right=TRUE
,但是如果
right=FALSE
,我应该在最高中断时保持相同的行为,而不是最低中断,对吗?所以我认为这不会改变什么

更多内容:我们正在开发一个使用R绘制图形的图形界面(它将成为R++的一部分,当然,它将非常棒)。当我们为所有直方图参数提供工具时,我们陷入了困境。如果它对任何东西都没有用处,只是一些旧的历史版本的遗留物,我们也可以不包括它,但如果它真的有用的话,我们不想忘记它


谢谢大家的关注。

我不太清楚你们在问什么。我假设您正在询问
hist
include.lowest=FALSE
的行为,以及它在示例中产生错误的原因

这与数据的装箱方式有关。让我们来看看<代码>剪切<代码>,因为这个函数与<代码> Hist:< /C> >密切相关。

cut(1:100, breaks = c(1, 2, 10, 50, 100))
#  [1] <NA>     (1,2]    (2,10]   (2,10]   (2,10]   (2,10]   (2,10]   (2,10]
#  [9] (2,10]   (2,10]   (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [17] (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [25] (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [33] (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [41] (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [49] (10,50]  (10,50]  (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [57] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [65] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [73] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [81] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [89] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [97] (50,100] (50,100] (50,100] (50,100]
#Levels: (1,2] (2,10] (10,50] (50,100]


为了澄清(基于@MikkoMarttila的评论):在
hist
中使用
include.lower=FALSE
进行装箱是在R中使用标准装箱的默认行为,例如
cut
。因此,包括设置
include.lowest=FALSE
的选项,以与
cut
及其默认的开闭间隔一致。大多数情况下,在绘制直方图时,您需要一个最小值为区间一部分的区间(使用开闭区间时不会出现这种情况),因此,默认情况下
include.lowest=TRUE

在我看来,它只是被保留了下来,因为对直方图进行装箱的C函数需要这个参数。在
hist.default
中的binning之后有一个检查,以查看计数总和是否等于观察数,这意味着您不能在不抛出错误的情况下计数;所以我想不出设置
include.lowest=FALSE
会改变直方图中的任何内容而不会抛出错误的场景,正如您所说。我假设OP是在问您是否有任何理由希望使用
include.lowest=FALSE
@MikkoMarttila。您的问题的答案在我的答案中:
include.lowest=FALSE
是您在R中使用
cut
等标准装箱时所期望的默认行为。因此,我想它是为了与
cut
保持一致而包括在内的。大多数情况下,您需要的间隔中的最小值是间隔的一部分(对于典型的打开-关闭间隔,情况并非如此),因此默认情况下
include.lowest=TRUE
。有意义吗?事实上:参数在
cut
中有有效的用法(不会抛出错误)。但是在
hist
中将其设置为
FALSE
的唯一效果是导致错误消息,对吗?我认为,假设您正在绘制的数据是严格正的,这可能是有用的?@MikkoMarttila正如我所说,我认为
include.lowest=FALSE
对于确保与
cut
结果的一致性至关重要。例如,如果要从
hist
返回对象中提取详细信息,并将其映射到使用
cut
计算的间隔;或者将
hist
的结果与
表格(剪切(…)
进行比较。谢谢你们的回答。它证实了我的部分想法,并帮助我更好地理解与
cut
的链接。如果您感到好奇,并且由于本次讨论的结果,我认为我们不会在图形界面中提供对include.lowest参数的访问,尽管用户始终可以手动编辑生成的原始代码(例如,将结果与
表(剪切(…)
)进行比较)。
hist(1:100, breaks = c(0, 2, 10, 50, 100), include.lowest = FALSE)