如何在R中使用中断工作

时间:2016-08-24 12:33:25

标签: r split binning

我试图理解切割如何划分并创造间隔;试过?cut ,但无法弄清楚 r cut 的工作方式。
这是我的问题:

set.seed(111)
data1 <- seq(1,10, by=1)
data1 
[1]  1  2  3  4  5  6  7  8  9 10
data1cut<- cut(data1, breaks = c(0,1,2,3,5,7,8,10), labels = FALSE)
data1cut
[1] 1 2 3 4 4 5 5 6 7 7

1。为什么8,9,10不包含在 data1cut 结果中?
2.为什么摘要(data1)摘要(data1cut)会产生不同的结果?

summary(data1)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
1.00    3.25    5.50    5.50    7.75   10.00 

summary(data1cut)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
1.00    3.25    4.50    4.40    5.75    7.00  

我应该如何更好地使用 cut ,以便根据摘要(data1)的结果创建说明 4箱

bin1 [1 -3.25]
bin2 (3.25 -5.50]
bin3 (5.50 -7.75]
bin4 (7.75 -10] 

谢谢。

1 个答案:

答案 0 :(得分:3)

您的示例中的

cut将向量拆分为以下部分: 0-1(1); 1-2(2); 2-3(3); 3-5(4); 5-7(5); 7-8(6); 8-10(7

括号中的数字是cut根据提供的breaks值分配给每个分档的默认标签。

默认情况下,

cut不包括较低范围。如果要更改它,则需要在include.lowest参数中指定它。

  1. 您没有指定标签,此函数中的默认参数为FALSE,因此使用等级代码的整数向量(括号内)。

  2. summary(data1)是原始数据的摘要,summary(data1cut)是您的拆分摘要。

  3. 您可以使用以下方式获得所需的分割:

    data2cut<- 
      cut(data1, breaks = c(1, 3.25, 5.50, 7.75, 10),
          labels = c("1-3.25", "3.25-5.50", "5.50-7.75", "7.75-10"),
          include.lowest = TRUE)
    

    结果如下:

      

    data2cut

    [1] 1-3.25 1-3.25 1-3.25 3.25-5.50 3.25-5.50 5.50-7.75 5.50-7.75 7.75-10 7.75-10
    [10] 7.75-10
    级别:1-3.25 3.25-5.50 5.50-7.75 7.75-10

    我希望现在很清楚。