首页 > 解决方案 > CRAN 包发布反馈:你向控制台写信息消息,不容易被压制

问题描述

我从 CRAN 那里得到了关于包发布的反馈。

什么是压制手段?

反馈:

您将信息消息写入控制台,这些消息不容易被抑制。如果您确实必须将文本写入控制台,则不要使用 print()/cat() 而是使用 message()/warning() 或 if(verbose)cat(..) (或者可能 stop()) 。(打印、汇总、交互功能除外)

标签: rgithubpackagecran

解决方案


我们看不到你的代码,因为你没有提供一个可重复的例子——所以我有一些猜测——但这可能意味着你有一个

print()
cat()

在您的代码中,正如文本所述。而不是cat("Hello to my package\n")你也可以说packageStartupMessage("Hello to my package\n")对应的函数suppressPackageStartupMessages()可以用来抑制哪个。

例如:

> packageStartupMessage("Welcome to my package")  
Welcome to my package      
> suppressPackageStartupMessages(packageStartupMessage("Welcome ..."))    
>   

第二个被压制了,第一个没有。您需要在包(或它使用的任何库)中找到打印到控制台的内容并进行更改。

同样,message()可以抑制,并且warning()可以通过警告级别进行控制。

清单是解决这些问题的r-package-devel好地方,清单档案也会有这样的例子。


推荐阅读