如何使这个R包的输出静音?

use*_*035 5 r

我正在玩LowRankQP()R中的软件包,甚至设置verbose=FALSE仍会产生大量输出(参见下面的示例).

输出来自代码的编译部分.R中是否有一种方法(包装函数?)在不修改底层编译代码的情况下调用LowRankQP()绝对静音(即不在屏幕上打印任何内容)(与此软件包关联的电子邮件地址仍未激活)?

library(LowRankQP)

Vmat <- matrix(0,6,6)
diag(Vmat) <- c(1, 1,1,0,0,0)
dvec <- c(0,-5,0,0,0,0)
Amat <- matrix(c(-4,-3,0,-1,0,0,2,1,0,0,-1,0,0,-2,1,0,0,-1),6,3)
bvec <- c(-8,2,0)
uvec <- c(100,100,100,100,100,100)

aa<-LowRankQP(Vmat,dvec,t(Amat),bvec,uvec,method="CHOL")

# LowRankQP CONVERGED IN 15 ITERATIONS
# 
#     Primal Feasibility    =   2.5719308e-16
#     Dual Feasibility      =   7.1949984e-16
#     Complementarity Value =   3.3066705e-11
#     Duality Gap           =   3.3065273e-11
#     Termination Condition =   9.7802929e-12
Run Code Online (Sandbox Code Playgroud)

这是我想要的"LowRankQP收敛于15次迭代"的部分.

Ubuntu 11.04,R版本2.12.1和LowRankQP()1.0.1.

cbi*_*low 6

sink(file = NULL)不起作用,因为它关闭了最后一个接收器,仅此而已.

sink(file = NULL)警告消息:在接收器中(file = NULL):没有要删除的接收器

虽然有用但是:

f = file()
sink(file=f) ## silence upcoming output using anonymous file connection
... your code here ...
sink() ## undo silencing
close(f)
Run Code Online (Sandbox Code Playgroud)

使用匿名文件具有与平台无关的优点,即您不必提供临时文件名.

例:

f = file()
sink(file=f)
example(glm)
sink()
close(f)
Run Code Online (Sandbox Code Playgroud)

我已经成功地将sink()用于其他函数(例如normalmixEM2comp {mixtools}).

(编辑:这篇文章的第一个版本没有使用显式文件句柄,因此发出警告 - 如果你经常调用上面的代码片段,甚至会出错).现在通过使用close(f)来修复此问题.