如何舍入到最接近的10(或100或X)?
|
我正在写一个函数来绘制数据。我想为y轴
max
指定一个不错的整数,该整数大于数据集的最大值。
具体来说,我想执行以下功能的函数performs1ѭ:
foo(4) == 5
foo(6.1) == 10 #maybe 7 would be better
foo(30.1) == 40
foo(100.1) == 110
我已经到了
foo <- function(x) ceiling(max(x)/10)*10
舍入到最接近的10,但这不适用于任意舍入间隔。
在R中有更好的方法吗?
没有找到相关结果
已邀请:
11 个回复
丧泉缝锋
当x是向量时,这实际上也适用:
..但是如果要四舍五入为“ nice \”数字,则首先需要定义“ \ nice \”数字是什么。以下内容使我们可以将\“ nice \”定义为具有从1到10的良好基值的向量。默认设置为偶数加5。
当x是向量时,上述方法不起作用-现在太晚了:)
[[编辑]] 如果问题是如何四舍五入到指定的最接近值(例如10或100),那么James的答案似乎是最合适的。我的版本允许您获取任何值并将其自动舍入为合理的“ nice”值。上面的“ nice”矢量的其他一些不错的选择是:
如果绘图中有一定范围的值,例如
,则自动方式应同时考虑范围的大小和数字的大小。而且正如Hadley所指出的那样,noted10ѭ函数可能正是您想要的。
淘圃跺枯替
库具有函数
,该函数非常通用,可以进行各种舍入。例如
艾食魄轻县
输出如下所示
席陋临拈
这使:
踩什不
埠仙俊
轻松将数字四舍五入到指定的间隔。 功能:
例子:
怎么运行的: 模运算符
确定将第一个数除以2的余数。在您感兴趣的数字上添加或减去此间隔实际上可以将数字“四舍五入”到您选择的间隔。
更新: 方便的2参数版本:
正ѭ25值
,而负
值
:
要么.... 根据标准舍入规则自动向上或向下舍入的函数:
如果
的值是舍入值
的后续实例之间的中间值
,则自动舍入:
佃蒜狗掂哥
)和任何四舍五入的实数(
):
例:
砷竣阿
您的示例运行:
我通过两种方式更改了您的功能: 添加第二个参数(对于您指定的X) 如果您想要更大的数字,请在
中添加一个较小的值(
,随时可以修改!)。
碉罕城爸
函数:
同样,如果您始终想舍入,请使用
函数。如果只想向上或向下舍入到最接近的Z,请改用
。
浩挎
嘘伪