R在写入文本文件和控制台(stdout)之间切换
我有一个R程序,它使用writeLines、cat和print生成大量文本,我希望能够在文本文件和控制台之间来回切换输出。下面是一个简单的例子:R在写入文本文件和控制台(stdout)之间切换,r,file-io,R,File Io,我有一个R程序,它使用writeLines、cat和print生成大量文本,我希望能够在文本文件和控制台之间来回切换输出。下面是一个简单的例子: WRITE_TO_TEXT_FILE <- TRUE TEXT_FN <- "C:/temp/test.text" if (WRITE_TO_TEXT_FILE) { fileConnection <- file(TEXT_FN ) writeLines("My text string"
WRITE_TO_TEXT_FILE <- TRUE
TEXT_FN <- "C:/temp/test.text"
if (WRITE_TO_TEXT_FILE) {
fileConnection <- file(TEXT_FN )
writeLines("My text string", fileConnection)
close(fileConnection)
} else {
writeLines("My text string")
}
WRITE_TO_TEXT_FILE您还可以使用stdout()
作为默认输出的连接。你可以这样做
if (WRITE_TO_TEXT_FILE ) {
fileConnection <- file(TEXT_FN )
} else {
fileConnection <- file(stdout)
}
writeLines("My text string", fileConnection)
close(fileConnection)
WRITE_TO_TEXT_FILE <- TRUE
TEXT_FN <- "C:/temp/test.text"
# at the start
fcon <- stdout()
if (WRITE_TO_TEXT_FILE) {
fcon <- file(TEXT_FN)
}
# use fcon anytime you need to write output
writeLines("My text string", fcon)
# at the very end
if (WRITE_TO_TEXT_FILE) {
# you usually don't close stdout
close(fcon)
}
WRITE_TO_TEXT_文件很漂亮-谢谢。我发现我犯的一个错误是在stdout之后没有包含括号,也就是说,我尝试了stdout的变体,“stdout”等,但没有键入stdout()。是的,在R中,它是一个返回连接的函数,而不像其他语言中的对象。一个微妙的转折:因为我必须从程序中的多个位置写入文件,我必须以附加模式打开它,即fcon