r - 是否有可以将 4.25 舍入为 4.3 而不是 4.2 的 R 函数?
问题描述
有没有办法将数字 4.25 舍入到 4.3 而不是 R 中的 4.2?
x <- sprintf("%-8.1f",4.25) # rounds it to 4.2
解决方案
如果你喜欢,你可以编写自己的“ round
”函数,如下所示
fround <- function(x, d = 0) {
x.abs <- abs(x)
s <- sign(x)
u <- trunc(x.abs * 10^d)
s * (u + ifelse(x.abs * 10^d - u >= 0.5, 1, 0)) / 10^d
}
这样
> fround(4.25, 2)
[1] 4.25
> fround(4.25, 1)
[1] 4.3
> fround(4.25, 0)
[1] 4
> fround(-4.25, 2)
[1] -4.25
> fround(-4.25, 1)
[1] -4.3
> fround(-4.25, 0)
[1] -4
推荐阅读
- ios - 更改 UIDeviceOrientationDidChange 限制
- c# - ConcreteState 对象可以更改它们所在的上下文吗?
- c++ - 为什么不能推导出unique_ptr的模板参数?
- r - 从R覆盖数据时Excel图表中的错误
- angular - 在 Angular6 项目中使用 Angular4 库的方法是什么?
- php - mysqli_real_escape_string 似乎没有工作
- php - 单个产品自定义日期字段未验证并保存在 Woocommerce 中
- javascript - 使用 FIrebase 数据库在 Firebase 函数中保存字符串
- python - 在 Python 中编译搜索模式
- laravel - Laravel 减少关系查询