r - R:十进制上限

标签 r numbers rounding

我需要ceilingfloor函数的十进制变体。像signif这样的东西,可以选择要朝哪个方向取整。

例如,我需要将数字2.63转换为2.7,而不是3(ceiling)或2.6(signif(2.63,2))。

我能想到的唯一解决方案是乘以10,然后采用ceiling再除以10。ceiling(2.63*10)/10我敢肯定,必须有一个更优雅的解决方案。

我的问题与this one非常相似。

最佳答案

@ 42-评论中的答案似乎很有用,不能仅留在评论中,因此,此Wiki-post。

您可以创建自己的函数并适应floorceiling功能,添加level选项以模仿digits函数的round参数,如下所示:

floor_dec <- function(x, level=1) round(x - 5*10^(-level-1), level)
ceiling_dec <- function(x, level=1) round(x + 5*10^(-level-1), level)

示例:
# floor
floor_dec(1.259, 2)
[1] 1.25
floor_dec(1.9, 0)
[1] 1
floor_dec(29, -1)
[1] 20
floor_dec(1.251, 2)
[1] 1.25
floor_dec(1.2, 0)
[1] 1
floor_dec(23, -1)
[1] 20

# ceiling
ceiling_dec(1.259, 2)
[1] 1.26
ceiling_dec(1.9, 0)
[1] 2
ceiling_dec(29, -1)
[1] 30
ceiling_dec(1.251, 2)
[1] 1.26
ceiling_dec(1.2, 0)
[1] 2
ceiling_dec(23, -1)
[1] 30

关于r - R:十进制上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35807523/

相关文章:

javascript - 如何检查 JavaScript 数字是否是真实有效的数字?

java - 舍入 BigDecimal 以匹配 C++ sprintf

r - 使用 ggplot2,什么代码创建由单个单词及其计数组成的条形图?

R Studio - 使用 R 命令保存所有脚本

r - 设置 R 中函数参数的默认值

php - 在 PHP 中四舍五入到最近的可用时间段

algorithm - 四舍五入到任意数量的有效数字

r - 功能化我的代码 - 将外部创建的数据框调用到函数中

javascript - 如何合并排序的数字列表中的连续数字?

php - 如何以这种并排模式排列数字?