在计算比例 (0 < x < 1) 时,我希望将该结果 x 转换为最接近的 1/r 形式,例如
x = 0.30 转换为 1/3
而对于
x = 0.29 转换为 1/4
我一直在尝试使用来自 MASS 的 round() 和 fractions() 的不同想法,但收效甚微。
你在 R 中最简单的解决方案是什么可以使这项工作?
最佳答案
以下可能会做你想做的,返回天花板或倒数的地板(以给出更好的结果为准):
f <- function(x) ifelse(abs(1/floor(1/x) - x) < abs(1/ceiling(1/x) - x),floor(1/x),ceiling(1/x))
关于r - 将任何比例四舍五入为其最接近的 1/r 形式的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57861824/