在R中,我想知道是否可以暂时将控制台的输出重定向到变量?
ps网上有一些关于如何使用sink()
将输出重定向到文件名的例子,但我找不到任何可以显示如何重定向到变量的例子.
pps在实践中,这很有用的原因是我需要从R中的一些内置函数打印出一部分默认控制台输出.
Ben*_*ker 34
我相信results <- capture.output(...)
你需要的东西(即使用默认file=NULL
参数). sink(textConnection("results")); ...; sink()
应该也可以,但正如?capture.output
所说capture.output()
:
与'sink'相关的方式与'with'与'attach'相关.
...这表明capture.output()
通常会更好,因为它更受限制(即你不必记得终止sink()
).
如果要将多个语句的输出发送到变量,可以将它们用大括号括起来{}
,但如果块足够复杂,最好使用sink()
(或者通过将代码包装在函数中使代码更加模块化).
dar*_*zig 14
对于记录,确实可以stdout
在没有调用的情况下借助于临时连接存储在变量中capture.output
- 例如,当您想要保存结果和stdout时.例:
准备转向R输出的变量:
> stdout <- vector('character')
> con <- textConnection('stdout', 'wr', local = TRUE)
Run Code Online (Sandbox Code Playgroud)转移输出:
> sink(con)
Run Code Online (Sandbox Code Playgroud)做一些事情:
> 1:10
Run Code Online (Sandbox Code Playgroud)结束转移:
> sink()
Run Code Online (Sandbox Code Playgroud)关闭临时连接:
> close(con)
Run Code Online (Sandbox Code Playgroud)检查结果:
> stdout
[1] " [1] 1 2 3 4 5 6 7 8 9 10"
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
15238 次 |
最近记录: |