Round-round和Round-down R.

时间:2017-06-22 05:37:28

标签: r rounding

这可能看起来很愚蠢,但我还没有成功地按照我的意愿来整理数据。 这是我的数组的一个例子:

a<-c(-0.5:30,by=5)

我想要的是:min(a)向下舍入到下一个数字到10的倍数但是max(a)向上舍入

这种情况:

min(a)=-0.5我希望它向下舍入到-10

max(a)=29.5我想要围捕(到30或40)。

我花了很多时间思考和搜索它,但没有找到任何东西。 任何帮助都将受到高度赞赏。

此致 PHUONG

2 个答案:

答案 0 :(得分:1)

a<- seq(from = -0.5, to = 30, by = 5) 

用于整理max

roundUp <- function(x,to=10)
{
  to*(x%/%to + as.logical(x%%to))
}
roundUp(max(a))

用于向下舍入min

roundDw <- function(x,to=-10)
{
  to*(x%/%to + as.logical(x%%to))
}
roundDw(min(a))

答案 1 :(得分:1)

您可以使用round_any中的plyr

library(plyr)

a <- seq(-0.5, 30, by = 5) 

round_any(min(a), 10, f = floor)
## -10  

round_any(max(a), 10, f = ceiling)
##  30