我是 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)。
任何建议或方法都将不胜感激。
答案 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)