如何保存详细输出

How to save verbose output

我想将任何 R 函数的详细输出保存到变量或文件中。

换句话说,whatever_R_function(abc, verbose=TRUE) 的详细控制台输出应该保存在某个地方。

我尝试使用 verbose.output <- capture.output(whatever_R_function(abc, verbose = TRUE)) 但它不起作用,因为 capture.output() 仅捕获输出的非详细部分。

两个例子:

install.packages('devtools', verbose=TRUE)

library(emayili)
smtp <- server(host = '...',
               port = ...,
               username = '...',
               password = '...')
email <- envelope() %>%
    from('...') %>%
    to('...') %>%
    bcc('...') %>%
    reply('...') %>%
    subject('...') %>%
    html('...') %>%
    attachment('...')
smtp(email, verbose = TRUE)

谢谢。

R 4.0.2 - RStudio 1.3.1093 - macOS 10.15.7

我没有深入研究 install.packages 代码,但是 smtp appears to use cat directed to stderr()verbose = TRUE.

?capture.output 帮助页面说:

Messages sent to stderr() (including those from message, warning and stop) are captured by type = "message". Note that this can be “unsafe” and should only be used with care.

所以,我相信如果你使用 capture.output(..., type = "message"),你应该得到它。这很有可能也适用于 install.packages

我不确定为什么这被认为是不安全的或者您应该注意什么...