在R语言中如何对非double类型的整数执行取整操作?
R语言整数指定位数取整方法
你需要的是将整数按十位为单位取整(如1445→145、1526→153),核心思路是先对整数做缩放处理,再用round()取整,具体实现如下:
直接处理单个或批量整数
先将整数除以10,再用round()取整即可得到目标结果:# 定义目标整数向量 target_nums <- c(1445, 1526, 2474) # 执行取整操作 round(target_nums / 10)运行结果:
[1] 145 153 247通用化取整函数(支持任意位数)
如果需要灵活调整取整的位数(比如百位、千位),可以封装一个简单函数:round_int <- function(x, keep_digits = 1) { scale_factor <- 10^keep_digits round(x / scale_factor) } # 测试:按十位取整(keep_digits=1) round_int(target_nums) # 若要按百位取整(如1445→14),设置keep_digits=2即可 round_int(target_nums, keep_digits = 2)
补充说明:R中的round()并非仅支持double/float类型,当传入integer类型时会自动转换为numeric类型处理,只是直接对无小数位的整数调用round()不会改变数值,因此需要先做缩放。
内容的提问来源于stack exchange,提问作者luism
相关产品推荐
相关产品推荐

