如何禁止显示不是警告消息的 RED 进度消息?解决方案不起作用

How to suppress RED progress messages that are not warning messages? SOLUTIONS NOT WORKING

提问人:Sky Scraper 提问时间:1/25/2022 最后编辑:Sky Scraper 更新时间:1/25/2022 访问量:42

问:

我有一个脚本,在该脚本中,我正在运行一个包中的命令:来自 ensembldb 包的 proteinToGenome()。

我使用结构迭代运行命令,每次迭代时,它将返回 RED 输出,该输出更多的是“进度”消息,无论命令成功/失败,都会输出这些消息,而不是警告消息:for () {}

Checking CDS and protein sequence lengths ... 1/1 OK

Fetching CDS for 1 proteins ... 1 found

艺术

Fetching CDS for 1 proteins ... 1 found

Checking CDS and protein sequence lengths ... 0/0 OK

如何禁止显示这些消息?我发现的其他问题似乎不适用于这些问题,他们的解决方案似乎并不能阻止这些问题。我已经尝试了以下语言中提供的所有解决方案:

禁止函数的输出

我累了:

capture.output(for (x in length(DF)) { 
        OutputDF <- function(DF[x])
})

和:

sink(for (x in length(DF)) { 
        OutputDF <- function(DF[x])
})

还尝试过:

hush=function(code){
  sink("NUL") # use /dev/null in UNIX
  tmp = code
  sink()
  return(tmp)
}
hush(for (x in length(DF)) { 
        OutputDF <- function(DF[x])
})

此外,我使用 for 和 not 的原因是因为我检查 是否为空,并使用循环中的命令采取相应的操作lapply()OutputDFif(){}else{}for(){}

r 输出 suppress suppressMessage

评论


答:

1赞 DaveArmstrong 1/25/2022 #1

怎么样:

suppressMessages(proteinToGenome(...))

在模型中使用的参数替换的位置...

评论

0赞 Sky Scraper 1/25/2022
不,那也行不通:/
1赞 DaveArmstrong 1/25/2022
@SkyScraper - 看起来这些都是打印的,所以使用包裹在调用应该可以工作。我更新了答案。message()suppressMessages()proteinToGenome()
0赞 Sky Scraper 1/26/2022
非常感谢!所以有 3 种不同的输出?消息、错误消息和输出消息?是吗?还是有更多技术术语?@DaveArmstrong
1赞 DaveArmstrong 1/26/2022
我通过你如何触发它们来思考它们。有一个函数,一个函数,然后是一个函数(抛出错误)。您可以使用 and 停止这些类型的输出。您还可以打印输出,或者可能会以您在原始帖子中尝试的方式禁止显示输出。message()warning()stop()suppressMessages()suppressWarnings()print()cat()
0赞 Sky Scraper 1/26/2022
因此,打印输出的行为方式与警告类似,但消息是唯一的?对不起,我从来没有用 message() 或 warning() 编写过脚本 >-<“ 我通常使用 print 来输出我希望脚本通知我的任何信息......