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?
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.
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.
To display numbers with decimal in R data frame column, we can use format function with round function and nsmall argument.
You could do this:
print <- function(x, ...) {
if (is.numeric(x)) base::print(round(x, digits=2), ...)
else base::print(x, ...)
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With