Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in R Programming by (7.3k points)

I am writing a function to plot data. I would like to specify a nice round number for the y-axis max that is greater than the max of the dataset.

Specifically, I would like a function foo that performs the following:

foo(4) == 5

foo(6.1) == 10 #maybe 7 would be better

foo(30.1) == 40

foo(100.1) == 110 

I have gotten as far as

foo <- function(x) ceiling(max(x)/10)*10

for rounding to the nearest 10, but this does not work for arbitrary rounding intervals.

Is there a better way to do this in R?

1 Answer

0 votes
by

To round up to the nearest 10 or 100, you can use the following function:

roundUp <- function(x,to=10)

{

  to*(x%/%to + as.logical(x%%to))

}

For example:

 roundUp(c(4,6.1,30.1,100.1))

[1]  10  10  40 110

 roundUp(4,5)

[1] 5

roundUp(12,7)

[1] 14

Browse Categories

...