假设我有以下功能:
## Just an example
f = function() {
for(i in 1:10000)
cat(i)
return(1)
}
Run Code Online (Sandbox Code Playgroud)
当我打电话f()有一种方法可以停止cat打印到屏幕上(无论如何都不改变功能)?
这个问题背后的原因
我的学生上传他们的R文件.然后我运行脚本并检查它们是否正确.每隔一段时间,学生就会离开cat指挥部.当它处于长时间的循环中时,这尤其令人恼火
jub*_*uba 19
在Linux上,你可以使用一个sink()调用/dev/null(或到另一个操作系统的临时文件,见?tempfile):
sink(file="/dev/null")
f()
sink()
Run Code Online (Sandbox Code Playgroud)
这应该工作?
oldcat = cat
cat = function( ..., file="", sep=" ", fill=F, labels=NULL, append=F ) {}
f()
cat = oldcat
Run Code Online (Sandbox Code Playgroud)
只需替换cat为空function,然后在完成时将其重新设置