如何在R中舍入为1,1.5,2等而不是1,2或1.1,1.2,1.3?

Nie*_*ein 3 r rounding

我想将数字舍入到最接近的一半或整数.所以我想要围绕4.2到4,4.3到4.5和4.8到5.我尝试了一些圆形选项:

> round(4.34,1)
[1] 4.3
> round(4.34)
[1] 4
> round(4.34,0.5)
[1] 4.3
> round(4.34,2)
[1] 4.34
Run Code Online (Sandbox Code Playgroud)

所以我只知道如何增加有效数字的数量,而不知道如何进行不同类型的舍入.可以用圆函数完成,还是在R中有不同的函数?

And*_*rie 14

使用round_any包中的功能plyr:

library(plyr)

x <- 4.34

round_any(x, 3)
[1] 3

round_any(x, 1)
[1] 4

round_any(x, 0.5)
[1] 4.5

round_any(x, 0.2)
[1] 4.4
Run Code Online (Sandbox Code Playgroud)


Tom*_*mmy 11

这没有任何额外的包:

x <- c(4.2, 4.3, 4.8)
round(x*2)/2
#[1] 4.0 4.5 5.0
Run Code Online (Sandbox Code Playgroud)


And*_*ndy 5

我不知道R,但我相信这会起作用,语法不谈:

y = x / 5
z = round(y, 1)
r = z * 5
Run Code Online (Sandbox Code Playgroud)

  • 应该是`r = z*5`! (2认同)