Setting default number of decimal places for printing

后端 未结 2 1957
感情败类
感情败类 2020-12-16 04:48

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

相关标签:
2条回答
  • 2020-12-16 05:08

    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"
    
    0 讨论(0)
  • 2020-12-16 05:33

    You could do this:

    print <- function(x, ...) {
        if (is.numeric(x)) base::print(round(x, digits=2), ...) 
        else base::print(x, ...)
    }
    
    0 讨论(0)
提交回复
热议问题