我在寻找抑制输出一个命令(在这种情况下,apply
函数)。抑制一个命令的输出R
是否可以在不使用sink()
的情况下执行此操作?我已经在下面找到了所描述的解决方案,但是如果可能的话,希望在一行中完成。
我在寻找抑制输出一个命令(在这种情况下,apply
函数)。抑制一个命令的输出R
是否可以在不使用sink()
的情况下执行此操作?我已经在下面找到了所描述的解决方案,但是如果可能的话,希望在一行中完成。
你为什么要做到这一点没有sink
目前尚不清楚,但可以在invisible()
功能包的任何命令,它会抑制输出。例如:
1:10 # prints output
invisible(1:10) # hides it
否则,你总是可以结合东西放进一个行以分号和括号:
{ sink("/dev/null"); ....; sink(); }
[R仅自动打印未分配表达式的输出,所以只分配的结果apply
到一个变量,它不会被打印。
使用capture.output()
函数。它非常像一次性的sink()
,而不像invisible()
,它可以抑制不仅仅是打印信息。将文件参数设置为UNIX上的/dev/null
或Windows上的NUL
。例如,考虑德克的说明:
> invisible(cat("Hi\n"))
Hi
> capture.output(cat("Hi\n"), file='NUL')
>
您可以使用下面的'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
你能解释一下你的意思通过“做到这一点一致'?否则,你引用的问题已经提供了答案,这是重复的。 – 2010-04-27 16:33:19
该解决方案需要三条线路,一条重定向输出,命令,然后另一条输出重新打开。 – Tor 2010-04-27 16:43:59
这仍然是一个重复的问题。 – 2010-04-27 16:55:26