Escribir líneas de texto en un archivo en R

En el lenguaje de guiones R, ¿cómo escribo líneas de texto, por ejemplo, las siguientes dos líneas

Hello World 

a un archivo llamado “output.txt”?

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

De hecho, puedes hacerlo con sink() :

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

por lo tanto hacer:

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

Utilizaría el comando cat() como en este ejemplo:

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

A continuación, puede ver los resultados de con R con

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

¿Qué pasa con un simple writeLines() ?

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

o

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

1. Usar argumento de archivo en cat .

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

2. Utilice la función sink para redirigir todos los resultados tanto de impresión como de cat a archivo.

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

NOTA : La función de impresión no puede redirigir su salida, pero la función de sumidero puede forzar toda la salida a un archivo.

3. Hacer la conexión a un archivo y escribir .

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

Podrías hacer eso en una sola statement

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

Para completar las posibilidades, puede usar writeLines() con sink() , si lo desea:

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

Para mí, siempre parece más intuitivo usar print() , pero si lo haces, la salida no será la que quieras:

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

Basado en la mejor respuesta :

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

Tenga en cuenta que yourObject necesita estar en formato de cadena; use as.character() para convertir si lo necesita.

Pero esto es demasiado tipeo para cada bash de salvar. Vamos a crear un fragmento en RStudio.

En Global Options >> Code >> Snippet, escribe esto:

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

Luego, durante la encoding, escriba wfile y presione Tab .

Yo sugiero:

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

Es más corto y más directo que la respuesta aceptada actual. No es necesario hacer:

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

Porque la documentación de writeLines() dice:

Si el con es una cadena de caracteres, la función llama al file para obtener una conexión de archivo que se abre durante la duración de la llamada a la función.

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

La opción del sistema feo

 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