r - 如何四舍五入到最接近的 10(或 100 或 X)?

标签 r rounding

我正在编写一个函数来绘制数据。我想为 y 轴 max 指定一个大于数据集最大值的整数。

具体来说,我想要一个执行以下操作的函数foo:

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 中是否有更好的方法来做到这一点?

最佳答案

plyr 库有一个函数 round_any,它非常通用,可以进行各种舍入。例如

library(plyr)
round_any(132.1, 10)               # returns 130
round_any(132.1, 10, f = ceiling)  # returns 140
round_any(132.1, 5, f = ceiling)   # returns 135

关于r - 如何四舍五入到最接近的 10(或 100 或 X)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6461209/

相关文章:

R 润滑剂 : How to put a lubridate timestamp in a dataframe?

r - 在 R 中未正确绘制均匀分布的直方图

c# - C# 中的 double 、整数、Math.Round

java - 使用 Math.round 舍入到小数点后一位?

R Shiny - 如何舍入数字、转换为百分比并下载 .csv 文件

r - Dplyr:如何分组(全部)

具有透明背景的 R 绘图图例

r - 如何快速检查内置数据集 (PSA)?

java - 使用 HALF_UP 舍入模式舍入时 BigDecimal 的惊人行为

java - ROUND_HALF_EVEN 为什么以及如何在重复应用于一系列计算时最小化累积误差?