r - 避免控制台消息形式封装函数

标签 r

我正在使用一个包函数(coreenv,来自 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/

相关文章:

r - 根据大型数据集中的平均值分配通过/失败值

r - 改进并加速代码以确定大量组合

r - 求解 R 中的线性方程组

r - 将最后的输出捕获为R对象

r - 索引数据帧花费的时间太长

r - 与间隔匹配并提取两个矩阵 R 之间的值

css - 控制数据表输出中的行条纹颜色

html - 网页抓取:没有匹配的 CSS 选择器

r - R中的部分合并

python - Flask 应用程序中的 Rpy2 : Fatal error: unable to initialize the JIT