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
I like formatC
for printing numbers with a specified number of decimal places. That way, 1
should always be printed as "1.0"
when digits = 1
and format = "f"
. You can create an S3 print method for objects of class numeric such as the following:
print.numeric<-function(x, digits = 1) formatC(x, digits = digits, format = "f")
print(1)
# [1] "1.0"
print(12.4)
# [1] "12.4"
print(c(1,4,6.987))
# [1] "1.0" "4.0" "7.0"
print(c(1,4,6.987), digits = 3)
# [1] "1.000" "4.000" "6.987"
You could do this:
print <- function(x, ...) {
if (is.numeric(x)) base::print(round(x, digits=2), ...)
else base::print(x, ...)
}