3

通常,我可以使用该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 中打印的输出?

4

1 回答 1

2

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

f <- file("/tmp/test.txt", open = "wt")
cat <- function(...){
    base::cat(..., file=f)
    }
cat("Hello World\n")
close(f)
于 2018-07-11T19:38:43.280 回答