我使用cut和classIntervals对R中的数据进行分组,稍后我将使用ggplot2进行绘图。因此,按n = 3的分位数切割的基本操作将如下所示:
library(classInt)
a<-c(1,10,100,1000,100000,1000000)
b<-cut(a,
breaks=data.frame(
classIntervals(
a,n=3,method="quantile")[2])[,1],
include.lowest=T)
其中b
将是:
[1] [1,70] [1,70] (70,3.4e+04] (70,3.4e+04] (3.4e+04,1e+06] (3.4e+04,1e+06]
Levels: [1,70] (70,3.4e+04] (3.4e+04,1e+06]
所以这个输出的第一行是一个带有我的分组数据的向量,我可以在ggplot2中使用它。但是,我希望标签为[1,70] (70,34000] (3400,1000000]
我怎么能实现这一点?如果你有其他方法而不是cut和classInt来获得相同的结果,那么任何帮助都会受到赞赏。
答案 0 :(得分:42)
在dig.lab
函数中使用参数cut
:
a<-c(1,10,100,1000,100000,1000000)
b<-cut(a,
breaks=data.frame(
classIntervals(
a,n=3,method="quantile")[2])[,1],
include.lowest=T,dig.lab=10) ##Number of digits used
b
[1] [1,70] [1,70] (70,34000] (70,34000]
[5] (34000,1000000] (34000,1000000]
Levels: [1,70] (70,34000] (34000,1000000]