36

我使用 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 来获得相同的结果,我们将不胜感激。

4

1 回答 1

58

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]
于 2013-03-19T11:12:43.520 回答