Suppress automatic output to console in R

后端 未结 2 510
不思量自难忘°
不思量自难忘° 2021-01-04 19:40

The function callmultmoments computes moments of the normal distribution. The function automatically prints \"Sum of powers is odd. Moment is 0.\"

2条回答
  •  礼貌的吻别
    2021-01-04 20:00

    The issue is due to the fact that the function has multiple print statements, where stop, warning, or message would have been appropriate so that people can use suppressWarnings or suppressMessages.

    You can work arount it using invisible(capture.output()) around your whole assignment (not just the right side).

    f1 <- function(n, ...){
        print("Random print statement")
        cat("Random cat statement\n")
        rnorm(n = n, ...)
    }
    
    f1(2)
    #> [1] "Random print statement"
    #> Random cat statement
    #> [1] -0.1115004 -1.0830523
    invisible(capture.output(x <- f1(2)))
    x
    #> [1]  0.0464493 -0.1453540
    

    See also suppress messages displayed by "print" instead of "message" or "warning" in R.

提交回复
热议问题