Sha*_*ane 84
目前尚不清楚你为什么要这样做sink
,但你可以在invisible()
函数中包装任何命令,它会抑制输出.例如:
1:10 # prints output
invisible(1:10) # hides it
Run Code Online (Sandbox Code Playgroud)
否则,您始终可以使用分号和括号将事物组合成一行:
{ sink("/dev/null"); ....; sink(); }
Run Code Online (Sandbox Code Playgroud)
Sha*_*pie 52
使用该capture.output()
功能.它的工作方式非常像一次性sink()
而且不同invisible()
,它可以抑制的不仅仅是打印消息./dev/null
在UNIX或NUL
Windows 上将file参数设置为.例如,考虑到Dirk的说明:
> invisible(cat("Hi\n"))
Hi
> capture.output( cat("Hi\n"), file='NUL')
>
Run Code Online (Sandbox Code Playgroud)
Dan*_*nny 14
以下函数应该完全符合您的要求:
hush=function(code){
sink("NUL") # use /dev/null in UNIX
tmp = code
sink()
return(tmp)
}
Run Code Online (Sandbox Code Playgroud)
例如这里的函数:
foo=function(){
print("BAR!")
return(42)
}
Run Code Online (Sandbox Code Playgroud)
跑步
x = hush(foo())
Run Code Online (Sandbox Code Playgroud)
将 42 分配给 x 但不会打印“BAR!” 到标准输出
请注意,在 UNIX 操作系统中,您需要将“NUL”替换为“/dev/null”
R只会自动打印未分配表达式的输出,因此只需将结果apply
赋给变量,它就不会打印出来.
小智 7
您可以像下面一样使用'capture.output'.这允许您稍后使用数据:
log <- capture.output({
test <- CensReg.SMN(cc=cc,x=x,y=y, nu=NULL, type="Normal")
})
test$betas
Run Code Online (Sandbox Code Playgroud)
如果有人来到这里寻找适用于 RMarkdown 的解决方案,这将抑制所有输出:
```{r error=FALSE, warning=FALSE, message=FALSE}
invisible({capture.output({
# Your code goes here
2 * 2
# etc
# etc
})})
```
Run Code Online (Sandbox Code Playgroud)
代码将运行,但输出不会打印到 HTML 文档