【问题标题】:Cut by Defined Interval按定义的间隔切割
【发布时间】:2011-08-10 10:23:02
【问题描述】:

R 中是否有某种方法可以在不中断的情况下按定义的间隔进行切割?

例如,如果我想要精确区间 [1,10] 中的值;默认情况下,cut 会将这个区间分成更小的区间。

【问题讨论】:

    标签: r


    【解决方案1】:

    要切割到预定义的间隔,您可以使用breaks 参数指定中断向量。

    定义一些数据:

    x <- sample(0:20, 100, replace=TRUE)
    x
    

    现在在 0、10 和 20 处切割 x:

    cut(x, breaks=c(0, 10, 20), include.lowest=TRUE)
    
      [1] (10,20] [0,10]  [0,10]  (10,20] (10,20] (10,20] [0,10]  (10,20] (10,20]
     [10] (10,20] [0,10]  (10,20] (10,20] (10,20] [0,10]  (10,20] [0,10]  [0,10] 
     [19] [0,10]  (10,20] [0,10]  [0,10]  [0,10]  (10,20] [0,10]  (10,20] (10,20]
     [28] (10,20] (10,20] [0,10]  [0,10]  [0,10]  [0,10]  (10,20] [0,10]  [0,10] 
     [37] [0,10]  [0,10]  (10,20] (10,20] (10,20] (10,20] [0,10]  (10,20] [0,10] 
     [46] (10,20] [0,10]  (10,20] (10,20] [0,10]  [0,10]  (10,20] (10,20] (10,20]
     [55] [0,10]  [0,10]  (10,20] [0,10]  [0,10]  [0,10]  [0,10]  (10,20] (10,20]
     [64] (10,20] [0,10]  [0,10]  (10,20] (10,20] (10,20] (10,20] (10,20] (10,20]
     [73] (10,20] [0,10]  [0,10]  [0,10]  (10,20] [0,10]  (10,20] [0,10]  (10,20]
     [82] [0,10]  [0,10]  (10,20] [0,10]  [0,10]  [0,10]  (10,20] (10,20] [0,10] 
     [91] [0,10]  [0,10]  (10,20] (10,20] [0,10]  [0,10]  [0,10]  [0,10]  (10,20]
    [100] (10,20]
    Levels: [0,10] (10,20]
    

    【讨论】:

    • 我有一个与 'cut' 相关的问题 cut(x$mpg,4) 给了我级别:(10.4,16.3] (16.3,22.1] (22.1,28] (28,33.9) 如何我们可以提取分界点吗?这里的分界点是10.4,16.3,22.1,28,33.9
    • @darkage 这是一个不同的问题,与原始问题没有真正的关系。但是你的问题在?cut 的最后一个例子中得到了回答。如果这没有帮助,请提出一个新问题。
    【解决方案2】:

    这样的?从 0 到 1 每 0.2 中断一次。

    > a <- runif(100)
    > cut(a, seq(from = 0, to = 1, by = 0.2))
      [1] (0,0.2]   (0.8,1]   (0.8,1]   (0.6,0.8] (0.6,0.8] (0,0.2]   (0.6,0.8]
      [8] (0.2,0.4] (0.8,1]   (0.4,0.6] (0.8,1]   (0.4,0.6] (0.8,1]   (0.6,0.8]
     [15] (0.8,1]   (0,0.2]   (0.8,1]   (0.8,1]   (0.6,0.8] (0.6,0.8] (0.2,0.4]
     [22] (0.4,0.6] (0.6,0.8] (0.2,0.4] (0.6,0.8] (0.6,0.8] (0.6,0.8] (0,0.2]  
     [29] (0,0.2]   (0.2,0.4] (0,0.2]   (0,0.2]   (0,0.2]   (0,0.2]   (0,0.2]  
     [36] (0.6,0.8] (0.2,0.4] (0.6,0.8] (0.6,0.8] (0.8,1]   (0.2,0.4] (0.4,0.6]
     [43] (0.4,0.6] (0.6,0.8] (0.2,0.4] (0.6,0.8] (0.6,0.8] (0.6,0.8] (0.4,0.6]
     [50] (0.6,0.8] (0.6,0.8] (0,0.2]   (0.2,0.4] (0.8,1]   (0.8,1]   (0.8,1]  
     [57] (0.6,0.8] (0.2,0.4] (0.2,0.4] (0,0.2]   (0.8,1]   (0.8,1]   (0.2,0.4]
     [64] (0.8,1]   (0.2,0.4] (0.4,0.6] (0.8,1]   (0,0.2]   (0.4,0.6] (0,0.2]  
     [71] (0.4,0.6] (0.8,1]   (0.6,0.8] (0.4,0.6] (0,0.2]   (0.2,0.4] (0.4,0.6]
     [78] (0,0.2]   (0.2,0.4] (0.8,1]   (0,0.2]   (0.4,0.6] (0.8,1]   (0,0.2]  
     [85] (0,0.2]   (0.2,0.4] (0.2,0.4] (0.4,0.6] (0.8,1]   (0.2,0.4] (0,0.2]  
     [92] (0.6,0.8] (0.2,0.4] (0.2,0.4] (0.8,1]   (0.2,0.4] (0.4,0.6] (0,0.2]  
     [99] (0,0.2]   (0,0.2]  
    Levels: (0,0.2] (0.2,0.4] (0.4,0.6] (0.6,0.8] (0.8,1]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多