R:如何使用区间作为直方图的输入数据?

时间:2014-03-18 15:29:26

标签: r

我想将数据导入R作为间隔,然后我想计算这些间隔内的所有数字,并从这个计数中绘制直方图。

示例:

start end freq
1 8 3
5 10 2
7 11 5
.
.
.

结果:

number freq
1 3
2 3
3 3
4 3
5 5
6 5
7 10
8 10
9 7
10 7
11 5

一些建议?

非常感谢!

1 个答案:

答案 0 :(得分:1)

假设您的数据位于df,您可以创建一个数据集,其中每个数字都在freq重复的范围内。一旦你知道了使用R中的汇总函数是微不足道的。这是一个小迂回,但比明确计算重叠的总和要容易得多(尽管那并不难)。 / p>

dat <- unlist(apply(df, 1, function(x) rep(x[[1]]:x[[2]], x[[3]])))
hist(dat, breaks=0:max(df$end))

enter image description here

您也可以table(dat)

 dat
 1  2  3  4  5  6  7  8  9 10 11 
 3  3  3  3  5  5 10 10  7  7  5