如何将控制台输出tee/split/copy到R中的变量中?
如何将特定代码的输出放入变量中?我希望该输出仍能转到控制台 我更喜欢如何将控制台输出tee/split/copy到R中的变量中?,r,R,如何将特定代码的输出放入变量中?我希望该输出仍能转到控制台 我更喜欢sink符号;我不想使用capture.output,原因有二: 它要求各个代码是单个函数;我不想通过创建函数来捕获输出,从而使代码复杂化 它不允许捕获的输出仍然进入控制台 我想出了下面的代码,但有点复杂。有更简单的解决办法吗 fileName <- tempfile() sink(fileName, split = TRUE) ... sink() out <- readChar(fileName, file.in
sink
符号;我不想使用capture.output
,原因有二:
fileName <- tempfile()
sink(fileName, split = TRUE)
...
sink()
out <- readChar(fileName, file.info(fileName)$size)
unlink(fileName)
fileName您的代码看起来并没有那么糟糕,但是您可以通过使用textConnection
,稍微简化一下:
sink(tt <- textConnection("results","w"),split=TRUE)
print(11:15)
## [1] 11 12 13 14 15
sink()
results
## [1] "[1] 11 12 13 14 15"
close(tt) ## clean up
可以使用%%>%%
(magrittr)或%%>%%
(pipeR)将发送到控制台的内容复制到后续的写入操作?或者这是您在magrittr
之前发布%tee%
运算符:-)的机会。请看,您应该只使用futile.logger
它做所有事情,外加额外的功能
results <- capture.output(split=TRUE,{
print("hello")
print("goodbye")
})