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

时间:2012-02-29 16:28:39

标签: 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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:11)

这没有任何额外的包装:

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

答案 2 :(得分:5)

我不知道R,但我相信这会有用,语法不在:

y = x / 5
z = round(y, 1)
r = z * 5