10

我有一个相当大的数据集的预分箱频率表。即,单列向量的 bin 和与这些 bin 关联的计数的单列向量。我希望 R 通过进一步分箱和对现有计数求和来绘制此数据的直方图。例如,如果在预分箱数据中我有类似 [(0.01, 5000), (0.02, 231), (0.03, 948)] 的东西,其中第一个数字是 bin,第二个是计数,我选择 0.04 作为新的 bin 宽度,我希望得到 [(0.04, 6179)]。在 R 中最快或最简单的方法是什么?

4

2 回答 2

6

看起来 ggplot2 有答案。

 
library(ggplot2)
qplot(bin, data=cbind(bins,counts), weight=counts, geom="histogram")
于 2010-09-24T17:29:39.593 回答
1

CRAN 上的新HistogramTools包有许多有用的功能可以做到这一点。在您的示例中,如果您想在直方图中的每个点将三个相邻的桶合并在一起以生成一个新的直方图,其中包含 1/3 的桶,您可以使用该MergeBuckets函数。

install.packages("HistogramTools")
library(HistogramTools)
h <- hist(rexp(1000), breaks=60)
plot(MergeBuckets(h, adj.buckets=3))

或者,您也可以明确指定所需的新断点列表,而不是告诉 MergeBuckets() 始终合并相同数量的相邻存储桶。 在此处输入图像描述

于 2013-10-10T18:09:00.270 回答