2

我是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 -> .4

1-5 -> 1.2

6-8 -> 1.4

9-10 -> 1.0

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

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

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

4

1 回答 1

10

你在正确的轨道上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)

或作为单行者:

aggregate(dat$Percent, 
          list(cut(dat$Depth, 
                   breaks=c(0, 1, 6, 9, 11), 
                   right=FALSE)),
          sum)
于 2013-06-21T19:07:05.307 回答