[R] "rounding" to a number that is LOWER than my number

Sarah Goslee sarah.goslee at gmail.com
Fri Sep 16 18:47:34 CEST 2011


Just for fun:

roundDown <- function(x, digits = 2)
{
currplaces <- nchar(as.character((floor(x))))

x <- x * 10 ^ (digits - currplaces)
x <- floor(x)
x <- x / (10 ^ (digits - currplaces))

x

}

> roundDown(1.98, 2)
[1] 1.9
> roundDown(1.98, 1)
[1] 1
> roundDown(1.98, 3)
[1] 1.98
>
>
> roundDown(298, 2)
[1] 290
> roundDown(298, 1)
[1] 200
>
> roundDown(298, 3)
[1] 298


Sarah

On Fri, Sep 16, 2011 at 12:31 PM, Dimitri Liakhovitski
<dimitri.liakhovitski at gmail.com> wrote:
> In other words, I am looking for something like floor, but more
> flexible - as it should allow me to:
> turn 1.98 into 1.9 or
> turn 298 into 290,
> etc.
> Dimitri
>
> On Fri, Sep 16, 2011 at 12:28 PM, Dimitri Liakhovitski
> <dimitri.liakhovitski at gmail.com> wrote:
>> Hello!
>>
>> What function would allow me to "round" down, rather than up?
>> For example, x<-1.98
>> I'd like to get 1.9 - rather than 2.0.
>>
>> Reason - I am creating a minimum for an axis for a plot, and I need it
>> to be lower than x (which, in turn, is the lowest number already).
>> Thank you!
>>
>> --

-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list