Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting default number of decimal places for printing

Tags:

r

decimal

I am running code to produce outputs where I want all the outputs to be printed with 1 decimal place. However the code uses functions which I use generally and I don't want to specify within these that the printed output is rounded.

The answers to this question Formatting Decimal places in R suggest using options(digits=2) or round(x, digits=2).

The first option is a general setting which is great for rounding 1.234 to 1.2 but would print 12.345 as 12

The second option would work if put within the function but I don't want to touch them. How to set this generally?

like image 224
BuckyOH Avatar asked Jun 27 '12 14:06

BuckyOH


People also ask

How do I fix decimal places in R?

To format all decimal places in an R vector and data frame, we can use formattable function of formattable package where we can specify the number of digits after decimal places.

What is the default value for the digits argument in signif?

The default, NULL , uses getOption("digits") . (For the interpretation for complex numbers see signif .) Non-integer values will be rounded down, and only values greater than or equal to 1 and no greater than 22 are accepted.

How do I show decimal places in R?

To display numbers with decimal in R data frame column, we can use format function with round function and nsmall argument.


1 Answers

You could do this:

print <- function(x, ...) {
    if (is.numeric(x)) base::print(round(x, digits=2), ...) 
    else base::print(x, ...)
}
like image 85
Matthew Plourde Avatar answered Sep 23 '22 12:09

Matthew Plourde