Отключение сообщения о загрузке пакета в Sweave - PullRequest
5 голосов
/ 16 ноября 2011

Я загружаю optmatch в документ Sweave следующим образом:

<<myCodeBlock, echo=FALSE>>=
library(optmatch, quietly=TRUE)
@

You're loading optmatch, by Ben Hansen, a package for flexible
and optimal matching. Important license information:
The optmatch package makes essential use of D. P. Bertsekas
and P. Tseng's RELAX-IV algorithm and code, as well as
Bertsekas' AUCTION algorithm and code.
Bertsekas and Tseng freely permit their software to be used for
research purposes, but non-research uses, including the use of it
to 'satisfy in any part commercial delivery requirements to
government or industry,' require a special agreement with them.
By extension, this requirement applies to any use of the
fullmatch() function. (If you are using another package that has
loaded optmatch, then you will probably be using fullmatch indirectly.)
For more information, enter relaxinfo() at the command line

Как вы можете видеть, я пытался всеми способами заставить замолчать сообщение о загрузке пакета, чтобы нетпомогло.Я предполагаю, что это потому, что они просто использовали cat() или что-то в этом роде, но это сильно раздражает.Любые мысли о том, как заставить это замолчать, чтобы те, кто читает мой последний, прекрасный, LaTeX PDF-файл, не читали о RELAX-IV?

Другие вещи, которые, похоже, не работают (возьмитеУказатель Андри на связанный поток ):

suppressMessages(library(optmatch))
suppressPackageStartupMessages(require("optmatch"))

Должен заметить, что это, очевидно, проблема R, а не проблема Sweave, так как сообщения всплывают и в R.

Ответы [ 2 ]

7 голосов
/ 16 ноября 2011

Попробуйте загрузить пакет в блоке результатов скрытия:

<<packages,results=hide>>= 
require(optmatch) 
@

Если вы используете пакет knitr, вам нужно указать hide:

<<packages,results='hide'>>= 
require(optmatch) 
@
3 голосов
/ 16 ноября 2011

Вот R решение вашей проблемы.Автор пакета использует cat для вывода сообщений на консоль, а не использует стандартные операторы сообщений.Вы можете перехватить эти сообщения, используя sink для перенаправления вывода консоли во временный файл:

<<myCodeBlock, echo=FALSE>>=
zz <- tempfile()
sink(file=zz)
library(optmatch, quietly=TRUE))
unlink(zz)
@

PS.Решение @XuWang использует только SWeave, поэтому оно явно более подходит для вашего случая.

...