我正在使用一个打包函数(corenv,来自seewave),该函数在控制台中创建“请稍候...”消息。正如我所说的那样,该消息非常令人讨厌。因此,我需要一种方法:


从我的代码中,暂时禁止控制台消息


要么


要访问功能代码并删除消息行


以下不是我的真实代码,而是显示问题的非常简单的代码

require(seewave)
a = seq(0, (2*pi), by=0.01) #simple, unreal example
for (i in sequence(100)){
  x = sin(a*i/3) #simple, unreal example
  y = sin(a*i/2) #simple, unreal example
  corenv(x,y,10,plot=FALSE)
}


一个非常简单的问题,但是我还没有找到任何解决方案。我会很感激的

最佳答案

您可以使用sink捕获输出,例如

sink("tmp.txt")
z = corenv(x,y,10,plot=FALSE)
sink()


您也可以将其包装在一个函数中,例如

## unlink deletes the temporary file
## on.exit ensures the sink is closed even if
## corenv raises an error.
corenv(..., verbose=FALSE) {
  if(verbose) {
    sink("tmp.txt")
    on.exit(sink(); unlink("tmp.txt"))
  }
  seewave::corenv(...)
}

关于r - 避免控制台消息表单包功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39154353/

10-09 05:52