R切割功能四舍五入

时间:2014-04-25 01:02:20

标签: r rounding cut

有谁知道R如何选择剪切函数中的有效位数?

y<-c(61, 64, 64, 65, 66)
table(cut(y, breaks=c(60.555, 67.123, 75.055)))

生成结果

(60.6,67.1] (67.1,75.1] 
          5           0 

但是

table(cut(y, breaks=c(60.958, 67.958, 74.958)))

生成结果

(61,68] (68,75] 
      5       0 

我希望r使用我在cut函数中提供的确切边界,但它似乎是四舍五入。我不清楚如何选择舍入的精度。请参阅下面的示例。是否有可能强制R使用我的确切边界?

1 个答案:

答案 0 :(得分:0)

如何使用nchar查找每次剪切的位数?以下是三个例子。

> y <- c(61, 64, 64, 65, 66)
> breaks1 <- c(60.555, 67.123, 75.055)
> table(cut(y, breaks = breaks1, dig.lab = min(nchar(breaks1))))

## (60.555,67.123] (67.123,75.055] 
##               5               0 
> breaks2 <- c(60.5, 67.1, 75.4)
> table(cut(y, breaks = breaks2, dig.lab = min(nchar(breaks2))))

## (60.5,67.1] (67.1,75.4] 
##           5           0 
> breaks3 <- c(60, 67, 75)
> table(cut(y, breaks = breaks3, dig.lab = min(nchar(breaks3))))

## (60,67] (67,75] 
##       5       0 

注意使用min只是为了控制在中断向量中数字不相同时会发生的警告消息。