我想将任何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
似乎在verbose = TRUE
时使用了指向stderr()
的cat
。
?capture.output
帮助页面显示:
stderr()
的消息(包括来自message
、warning
和stop
的消息(由type = "message"
捕获。请注意,这可能是"不安全的",只能小心使用。
所以,我相信如果你使用capture.output(..., type = "message")
,你应该得到它。这很有可能也适用于install.packages
。
我不知道为什么这被认为是不安全的,也不知道你应该怎么处理…