修改r中自定义函数的return/print选项

Modify the return/print option of a custom function in r

我构建了一个自定义函数,它打印 class 的输出及其概率 (classifier),如下所示:

fun(formula, data)
> "Class" 0.5

我将此 fun 集成到另一个函数 new_fun 中,但我使用 fun 的修改结果作为 new_fun 的输出。因此,我不需要原始输出 class 的 fun 和概率。一旦集成到 new_fun 中,有没有办法避免 returning/printing 原始输出?

您可以使用 capture.output:

f <- function() {print("test"); "result"}
g <- function() { capture.output(result<-f()); result}


f()
#> [1] "test"
#> [1] "result"
g()
#> [1] "result"

reprex package (v0.3.0)

于 2020-09-30 创建

在您提供的示例中,这将是:


new_fun <- function(...){
  myformula <- ...
  mydata <- ...

  #Call to fun with captured output
  capture.output( funresult <- fun(myformula, mydata))

  #Process further funresult
  ...
  
}