是否存在R函数可将数字向上或向下四舍五入到1位小数?
R语言指定方向的小数位取整实现方法
你可以通过缩放数值的方式适配ceiling、floor函数的整数取整逻辑,实现自定义小数位的定向取整需求:先将原始数值放大10的n次方倍(n为需要保留的小数位数),用定向取整函数处理后再缩小对应倍数即可。
适配你的需求的完整代码
x <- c(0.987, 1.125, 0.87359, 1.2) # 向上取整到1位小数 high_rounded <- ceiling(x * 10) / 10 # 向下取整到1位小数 low_rounded <- floor(x * 10) / 10
结果验证
运行上述代码后得到的结果符合预期:
- high_rounded输出:
1.0, 1.2, 0.9, 1.2 - low_rounded输出:
0.9, 1.1, 0.8, 1.2
如果后续需要调整保留的小数位数,只需修改缩放的倍数即可,比如要保留2位小数就把代码中的10替换为100。如果数据集包含负数,上述逻辑依然适用:ceiling始终取数轴上更靠右的数值,floor始终取数轴上更靠左的数值,符合常规定向取整的定义。
内容的提问来源于stack exchange,提问作者climeowt_change
相关产品推荐
相关产品推荐

