提问



在R脚本语言中,如何编写文本行,例如以下两行


Hello
World


到一个名为output.txt的文件?

最佳参考


fileConn<-file("output.txt")
writeLines(c("Hello","World"), fileConn)
close(fileConn)

其它参考1


实际上你可以sink()做到这一点:


sink("outfile.txt")
cat("hello")
cat("\n")
cat("world")
sink()


因此:


file.show("outfile.txt")
# hello
# world

其它参考2


我将使用cat()命令,如下例所示:


> cat("Hello",file="outfile.txt",sep="\n")
> cat("World",file="outfile.txt",append=TRUE)


然后,您可以使用R查看结果


> file.show("outfile.txt")
hello
world

其它参考3


什么是简单的writeLines()?


txt <- "Hallo\nWorld"
writeLines(txt, "outfile.txt")


要么


txt <- c("Hallo", "World")
writeLines(txt, "outfile.txt")

其它参考4


1 。在cat中使用文件参数


 cat("Hello World", file="filename")


2 。使用sink功能重定向 打印 cat 的所有输出到文件。


 sink("filename")                     # Begin writing output to file
 print("Hello World")
 sink()                               # Resume writing output to console


注意:打印功能无法重定向其输出,但接收功能可以
强制所有输出到文件。


3 与文件的连接撰写


con <- file("filename", "w")
cat("Hello World", file=con)
close(con)

其它参考5


你可以在一个声明中做到这一点


cat("hello","world",file="output.txt",sep="\n",append=TRUE)

其它参考6


为了完善可能性,你可以使用writeLines()sink(),如果你想:


> sink("tempsink", type="output")
> writeLines("Hello\nWorld")
> sink()
> file.show("tempsink", delete.file=TRUE)
Hello
World


对我来说,使用print()似乎最直观,但如果你这样做,输出就不会是你想要的:


...
> print("Hello\nWorld")
...
[1] "Hello\nWorld"

其它参考7


根据最佳答案:


file <- file("test.txt")
writeLines(yourObject, file)
close(file)


注意yourObject需要是字符串格式;如果需要,使用as.character()进行转换。


但这对于每次保存尝试都打字太多了。让我们在RStudio中创建一个片段。


在全局选项>>代码>>代码段中,键入以下内容:


snippet wfile
    file <- file(${1:filename})
    writeLines(${2:yourObject}, file)
    close(file)


然后,在编码期间,键入wfile并按 Tab

其它参考8


丑陋的系统选项



ptf <- function (txtToPrint,outFile){system(paste(paste(paste("echo '",cat(txtToPrint),sep = "",collapse = NULL),"'>",sep = "",collapse = NULL),outFile))}
#Prints txtToPrint to outFile in cwd. #!/bin/bash echo txtToPrint > outFile

其它参考9


我建议:


writeLines(c("Hello","World"), "output.txt")


它比目前接受的答案更短,更直接。
没有必要这样做:


fileConn<-file("output.txt")
# writeLines command using fileConn connection
close(fileConn)


因为writeLines()的文档说:



  如果con是字符串,则函数调用file来获取
  在函数期间打开的文件连接
  呼叫。



# default settings for writeLines(): sep = "\n", useBytes = FALSE
# so: sep = "" would join all together e.g.