如何使用sink()在Jupyter Notebook中保存R输出?

时间:2018-07-11 19:22:28

标签: r jupyter-notebook jupyter-irkernel

通常,我可以使用sink()函数将R输出重定向到文件。例如:

sink("test.txt") cat("Hello World") sink()

但是,在Jupyter Notebook(R内核)中,使用sink()不会重定向打印的输出,并且test.txt文件中没有任何内容。我知道在cat("Hello World", file = "test.txt")中指定文件名可以保存输出并避免完全使用sink()。问题是我有数百行使用cat()编写而未指定文件名。

有人知道为什么sink()在Jupyter中不起作用吗?还有其他方法可以存储用R打印的输出吗?

1 个答案:

答案 0 :(得分:0)

如果足够,您可以重新定义cat函数本身。

f <- file("/tmp/test.txt", open = "wt")
cat <- function(...){
    base::cat(..., file=f)
    }
cat("Hello World\n")
close(f)