将数据放入不相等的箱尺寸

时间:2013-06-21 18:50:21

标签: r dataset binning

我是 R 的新手,想要利用它来直接使用我的数据。我的最终目标是制作直方图/条形图。

  

深度:0,1,2,3,4,5,6,7,8,9,10

     

百分比:.4,.1,.5,.2,.1,.3,.9,.3,.2,.2,.8

我想取深度向量并将其分成不相等的块(0,1-5,6-8,9-10),并取百分比值并以某种方式将它们加在一起以得到匹配的块。

例如:

  

0 - > 0.4

     

1-5 - > 1.2

     

6-8 - > 1.4

     

9-10 - > 1.0

实际数据集成千上万,我觉得 R 可能更适合这个,然后使用C ++将数据分组到一个较小的表中,然后让R绘制它。

我查了如何使用SPLIT和CUT,但是我不太确定如何在将数据切割成范围后使用数据。如果我为CUT“中断”,我不知道如何包含Zero初始值(对应于示例中的.4)。

任何建议或方法都将不胜感激。

1 个答案:

答案 0 :(得分:8)

您使用cut

走在正确的轨道上
dat <- data.frame(Depth = 0:10,
                  Percent = c(0.4, 0.1, 0.5, 0.2, 0.1, 0.3, 0.9, 0.3, 0.2, 0.2, 0.8))

cuts <- cut(dat$Depth, breaks=c(0, 1, 6, 9, 11), right=FALSE)

然后您可以使用aggregate

aggregate(dat$Percent, list(cuts), sum)

或作为oneliner:

aggregate(dat$Percent, 
          list(cut(dat$Depth, 
                   breaks=c(0, 1, 6, 9, 11), 
                   right=FALSE)),
          sum)