r - 将任何比例四舍五入为其最接近的 1/r 形式的算法

标签 r fractions

在计算比例 (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/

相关文章:

c++ - 带分数的正则表达式验证 - Visual C++ 2012

python - 从数据帧列中拆分混合数字字符串并将其转换为 float

r - 在 r 中拟合模型时, "~."和 "~1"之间有什么区别?

r - 根据同一列中先前的值有条件地变异

r - 在单图混合模型中绘制多个随机效应

c - 如何同时读带分数和正分数?

python - 如何在 Python 中防止属性初始化为某些值

java - 分数在计算机中是如何表示的?

c++ - 两个矩阵之和的逆

r - 在访问选项卡之前未使用传单代理更新另一个选项卡中的传单