Answers:
fileConn<-file("output.txt")
writeLines(c("Hello","World"), fileConn)
close(fileConn)
writeLines()
的组合大约快十倍sink()
cat()
什么是简单的writeLines()
?
txt <- "Hallo\nWorld"
writeLines(txt, "outfile.txt")
要么
txt <- c("Hallo", "World")
writeLines(txt, "outfile.txt")
"Hallo\nWorld"
是字符类型的一个长度向量。试试看txt <- "Hallo\nWorld"; is.character(txt) && length(txt) == 1 && is.vector(txt)
writeLines(txt, con="outfile.txt")
。
> coefficients<-summary(model) > writeLines(coefficients, "coefficients") Error in writeLines(coefficients, "coefficients") : invalid 'text' argument
您可以在一个语句中做到这一点
cat("hello","world",file="output.txt",sep="\n",append=TRUE)
我建议:
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.
tidyverse版,带有管道,write_lines()
来自读者
library(tidyverse)
c('Hello', 'World') %>% write_lines( "output.txt")
如许多答案中所示,可以使用cat或writeLines实现将文本行写入R中的文件的简短方法。最短的可能性包括:
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))
根据最佳答案:
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。
file <- file(...)
条线对我来说可疑。既是file
作为函数调用又是赋予file
新的含义吗?难道file()
连这一块代码运行后的工作?现在无权使用R安装进行自我测试……
在较新的R版本中,writeLines
它将在文本中保留返回值和空格,因此您无需\n
在行末添加,可以将一大段文本写入文件中。这将适用于示例
txt <- "Hello
World"
fileConn<-file("output.txt")
writeLines(txt, fileConn)
close(fileConn)
但是您也可以使用此设置来简单地包含具有结构(换行符或缩进)的文本
txt <- "Hello
world
I can
indent text!"
fileConn<-file("output.txt")
writeLines(txt, fileConn)
close(fileConn)