如何在R中绘制预先分组的直方图

10

我有一个为大型数据集预先分组的频率表。换句话说,有一个包含分组的单列向量和一个与这些分组相关联的单列计数向量。我希望使用 R 进行进一步的分组并对现有计数进行求和,绘制此数据的直方图。例如,如果在预先分组的数据中,我有类似于 [(0.01, 5000), (0.02, 231), (0.03, 948)] 的内容,其中第一个数字是分组,第二个数字是计数,并且我选择 0.04 作为新的分组宽度,则期望得到 [(0.04, 6179)]。在 R 中实现这个最快或最简单的方法是什么?

2个回答

6
看起来 ggplot2 有答案。
 
library(ggplot2)
qplot(bin, data=cbind(bins,counts), weight=counts, geom="histogram")

你真快 ;) 我只是在查找我过去是如何解决这个问题的。我看到两种方法,我曾经使用过1)ggplot2和2)从分组数据中进行采样,然后重新分组。我更喜欢ggplot2,但重新分组是一个我在发现ggplot可以做到这一点之前想出来的hack(技巧)。 - JD Long
'bin'对象是什么? - fahmy

1
在CRAN上的新HistogramTools包中有许多有用的函数可以做到这一点。在您的示例中,如果您想在直方图的每个点上将三个相邻的桶合并在一起,以生成一个具有三分之一桶数的新直方图,则可以使用MergeBuckets函数。
install.packages("HistogramTools")
library(HistogramTools)
h <- hist(rexp(1000), breaks=60)
plot(MergeBuckets(h, adj.buckets=3))

另外,您还可以明确指定要使用的新断点列表,而不是告诉MergeBuckets()始终合并相邻的相同数量的桶。

enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接