在R中抑制一个命令的输出
我正在寻求抑制一个命令的输出(在这种情况下, applyfunction)。 
 没有使用sink()可以做到这一点吗? 我已经find了下面描述的解决scheme,但是如果可能的话,希望在一行中完成。 
如何抑制输出
 目前还不清楚,为什么你要这样做没有接收sink ,但你可以包装任何命令invisible()函数,它会抑制输出。 例如: 
 1:10 # prints output invisible(1:10) # hides it 
否则,你总是可以用分号和圆括号组合成一行:
 { sink("/dev/null"); ....; sink(); } 
 使用capture.output()函数。 它非常像一次性的接收sink()而不像invisible() ,它可以抑制的不仅仅是打印消息。 将文件参数设置为UNIX上的/dev/null或Windows上的NUL 。 例如,考虑德克的说明: 
 > invisible(cat("Hi\n")) Hi > capture.output( cat("Hi\n"), file='NUL') > 
  R只会自动打印未指定expression式的输出,所以只要将apply的结果赋值给一个variables,它就不会被打印出来。 
你可以使用下面的'capture.output'。 这使您可以稍后使用数据:
 log <- capture.output({ test <- CensReg.SMN(cc=cc,x=x,y=y, nu=NULL, type="Normal") }) test$betas 
 invisible(cat("Dataset: ", dataset, fill = TRUE)) invisible(cat(" Width: " ,width, fill = TRUE)) invisible(cat(" Bin1: " ,bin1interval, fill = TRUE)) invisible(cat(" Bin2: " ,bin2interval, fill = TRUE)) invisible(cat(" Bin3: " ,bin3interval, fill = TRUE)) 
在行末或下一行产生不带NULL的输出
 Dataset: 17 19 26 29 31 32 34 45 47 51 52 59 60 62 63 Width: 15.33333 Bin1: 17 32.33333 Bin2: 32.33333 47.66667 Bin3: 47.66667 63