首页 > 解决方案 > x 是否从系列中向下舍入到最接近的指定数值?

问题描述

想知道 x 如何根据单独的数字序列 (y) 向下舍入到最接近的值。这就是我的想法。

假设 x 在 5s 内

> y
[1]  5 10 15 20 25 30 35 40 45

并且来自不同对象的 y 等于

> x
[1] 39

我希望看到它从 y 向下舍入到最接近的较低指定值

> x
[1] 35

标签: r

解决方案


您可以使用 %/% 并将其乘以 y(如果将 y 设置为倍数,例如 5):

y <- 5
x <- 39
(x %/% y) * y

如果您必须为 y 使用长度 > 1 的向量,那么您可以使用一些不同的函数,例如max()tail(..., 1)来获取 y 中的最大值或最后一个值:

y <- seq(0, 50, 5)
tail(y[x > y], 1)
max(y[x > y])

请注意,这x > y是创建一个用于线性搜索的逻辑向量,返回一个 y 值小于 x 的向量并将其传递给函数。


推荐阅读