【发布时间】:2019-10-23 02:23:19
【问题描述】:
我希望将一组值四舍五入到最接近的整数,但前提是该数字有两个或多个小数位。否则,我想保持数字不变。
可以使用gsubfn、一个正则表达式和多种类型转换来完成,但是有没有更优雅的方法呢?
library(gsubfn)
y <- c(210.61233,212.41, 213.2, 214)
y <- as.character(y)
as.numeric(gsubfn("(\\d+\\.\\d{2,})", ~ round(as.numeric(x), 0) , y))
#211.0 212.0 213.2 214.0
【问题讨论】:
-
你可以测试是否
10*x == floor(10*x)。如果不是,x有多个小数/ -
您能解释一下为什么它很重要吗?我猜这些值是要显示给用户的,但是显示这些小数有那么尴尬吗?
-
这些值来自两个不同的来源,其中一个是最终用户习惯的。