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