R.四舍五入到特定位数。不管小数点是多少

R.四舍五入到特定位数。不管小数点是多少,r,rounding,R,Rounding,是否可以根据数字的大小将数字四舍五入到所需的位数 我明白了: x <- c(0.012345, 0.12345, 1.1245, 12.345, 123.45) round(x, digits = 3) #[1] 0.012 0.123 1.125 12.345 123.450 signif(x, digits = 3) #[1] 0.0123 0.1230 1.1200 12.3000 123.0000 一种让您更接近所需输出的快速方法,但不是100% a

是否可以根据数字的大小将数字四舍五入到所需的位数

我明白了:

x <- c(0.012345, 0.12345, 1.1245, 12.345, 123.45)
round(x, digits = 3)
#[1]   0.012   0.123   1.125  12.345 123.450

signif(x, digits = 3)
#[1]   0.0123   0.1230   1.1200  12.3000 123.0000

一种让您更接近所需输出的快速方法,但不是100%

as.numeric(strtrim(x,4))

或所需的字符串输出:

xl <- strsplit(strtrim(x, 4), "[.]")

unlist(
lapply(xl, function(x) {
paste(x, collapse = ".")
})
)

xl我认为
signif
需要进入
round
内部,否则12.345变为12.4

x <- c(0.012345, 0.12345, 1.1245, 12.345, 123.45, 1234.5, 12345, 123450)
x2 <- round(signif(x,3),2)
as.character(x2)
#[1] "0.01"   "0.12"   "1.12"   "12.3"   "123"    "1230"   "12300"  "123000"
x
x <- c(0.012345, 0.12345, 1.1245, 12.345, 123.45, 1234.5, 12345, 123450)
x2 <- round(signif(x,3),2)
as.character(x2)
#[1] "0.01"   "0.12"   "1.12"   "12.3"   "123"    "1230"   "12300"  "123000"