如何使用 sink() 在 Jupyter Notebook 中保存 R 输出?
How to use sink() to save R output in Jupyter notebook?
通常,我可以使用 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 中打印的输出吗?
如果足够的话,您可以重新定义 cat 函数本身。
f <- file("/tmp/test.txt", open = "wt")
cat <- function(...){
base::cat(..., file=f)
}
cat("Hello World\n")
close(f)
通常,我可以使用 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 中打印的输出吗?
如果足够的话,您可以重新定义 cat 函数本身。
f <- file("/tmp/test.txt", open = "wt")
cat <- function(...){
base::cat(..., file=f)
}
cat("Hello World\n")
close(f)