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

Hello
World

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


当前回答

一个简单的writeLines()是什么?

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

or

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

其他回答

用R语言将文本行写入文件的简单方法可以通过cat或writeLines实现,正如在许多答案中已经展示的那样。一些最短的可能性可能是:

cat("Hello\nWorld", file="output.txt")
writeLines("Hello\nWorld", "output.txt")

如果你不喜欢“\n”,你也可以使用下面的样式:

cat("Hello
World", file="output.txt")

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

当writeLines在文件末尾添加换行符时,cat则不是这样。 这种行为可以通过以下方法进行调整:

writeLines("Hello\nWorld", "output.txt", sep="") #No newline at end of file
cat("Hello\nWorld\n", file="output.txt") #Newline at end of file
cat("Hello\nWorld", file="output.txt", sep="\n") #Newline at end of file

但主要的区别是cat使用R对象和writeLines一个字符向量作为参数。所以写出例如数字1:10需要被强制转换为writeLines,而它可以像在cat中那样使用:

cat(1:10)
writeLines(as.character(1:10))

and cat可以接受很多对象,但writeLines只能接受一个vector:

cat("Hello", "World", sep="\n")
writeLines(c("Hello", "World"))
fileConn<-file("output.txt")
writeLines(c("Hello","World"), fileConn)
close(fileConn)

实际上你可以用sink()来实现:

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

因此做:

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

你可以用一个语句来做

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

丑陋的系统选项

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