【发布时间】:2012-03-29 15:41:21
【问题描述】:
我一直在使用 R 语言,我通过这种方式从数据文件创建了直方图:
a
b
c
hist(c, 100);
这是结果,在附图中:
Histogram http://www.imagehost.it/dm/FILK/istogrammaBis.png
我的问题是我想排除直方图的第一条。
你知道执行此操作的 R 命令吗?
感谢
【问题讨论】:
我一直在使用 R 语言,我通过这种方式从数据文件创建了直方图:
a
b
c
hist(c, 100);
这是结果,在附图中:
Histogram http://www.imagehost.it/dm/FILK/istogrammaBis.png
我的问题是我想排除直方图的第一条。
你知道执行此操作的 R 命令吗?
感谢
【问题讨论】:
hist 使用 'Sturges' 中断(由nclass.Sturges 确定的等间距数字)作为默认中断位置,但您忽略了它。第二个中断值是
seq( min(x), max(x), by= diff(range(x))/10 )[2]
所以:
hist(c[ c >= seq( min(c), max(c), by= diff(range(c))/10 )[2], 9 ] )
我减少了垃圾箱的数量以保持类别相同。如果您想查看默认中断数的公式,只需键入:
nclass.Sturges
发现人们对hist 的行为感到困惑的情况并不少见。因为结果看起来不规则。试试:
hist(0:8)
【讨论】:
CRAN 上的 HistogramTools 包提供了许多简单的辅助函数,用于从直方图中删除 bin 或缩小直方图域。例如,请参阅 SubsetHistogram 和 TrimHistogram 函数。
假设我们有这个初始直方图:
hist.1 <- hist(runif(100,min=2,max=4), breaks=seq(0,6,by=.2), plot=FALSE)
我们可以像这样使用TrimHistogram 修剪空桶:
hist.trimmed <- TrimHistogram(hist.1)
我们可以使用SubsetHistogram 函数进一步指定最大或最小断点以排除直方图左侧或右侧的 bin(缩小原始海报术语中的域),如下所示:
plot(SubsetHistogram(hist.trimmed, 2.2))
【讨论】: