是否有现成的 R 函数可以将范围舍入到由整数定义的最接近的超集?

Is there a readymade R function to round a range to the nearest superset defined by integers?

我想将向量的最小值和最大值四舍五入为最接近的整数,以便由这两个值定义的新集合是先前数据的实际超集。

例如,对于 1.1 和 2.9 之间的向量,round(range()) returns 1 和 3,这是理想的结果:

x <- seq(1.1, 2.9, 0.1)
oldrange_x <- range(x)
newrange_x <- round(oldrange_x)
newrange_x

另一方面,对于 1.8 和 2.9 round(range()) returns 2 和 3,它们不是初始向量的超集:

y <- seq(1.8, 2.9, 0.1)
oldrange_y <- range(y)
newrange_y <- round(oldrange_y)
newrange_y

并引导我结合使用 floor() 和 ceiling()

newrange_y2 <- c(floor(min(oldrange_y)), ceiling(max(oldrange_y)))
newrange_y2

是否有一个现成的函数来执行此操作 - 本质上是一个 roundrange() 函数 - 以避免丑陋的解决方案并使代码更具可读性?

你对地板和天花板的使用非常好,一点也不丑。这是将其包装在函数中的方法。

superset <- function(x){
    c(floor(min(x)), ceiling(max(x)))} 

superset(seq(1.8, 2.9, 0.1))
> [1] 1 3