454 Stimmen

Schreiben von Textzeilen in eine Datei in R

Wie schreibe ich in der Skriptsprache R Textzeilen, z. B. die folgenden zwei Zeilen

Hello
World

in eine Datei namens "output.txt"?

2voto

Um die Möglichkeiten zu vervollständigen, können Sie Folgendes verwenden writeLines() con sink() wenn Sie wollen:

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

Mir scheint es immer am intuitivsten zu sein, die print() aber wenn Sie das tun, wird das Ergebnis nicht so sein, wie Sie es wollen:

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

2voto

Luis Martins Punkte 1362

Basierend auf die beste Antwort :

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

Beachten Sie, dass die yourObject muss in einem String-Format vorliegen; verwenden Sie as.character() zu konvertieren, wenn Sie es brauchen.

Aber das ist zu viel Tipparbeit für jede Rettungsversuch. Lassen Sie uns ein Snippet in RStudio erstellen.

Unter Globale Optionen >> Code >> Snippet geben Sie Folgendes ein:

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

Dann, während der Codierung, Typ wfile und drücken Sie Tab .

0voto

mikey Punkte 790

In neueren Versionen von R, writeLines behält die Zeilenumbrüche und Leerzeichen in Ihrem Text bei, so dass Sie keine \n am Ende von Zeilen und Sie können einen großen Textbrocken in eine Datei schreiben. Dies wird mit dem Beispiel funktionieren,

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

Sie können diese Einstellung aber auch verwenden, um einfach Text mit Struktur (Zeilenumbrüche oder Einzüge) einzufügen

txt <- "Hello
   world
 I can 
   indent text!"
fileConn<-file("output.txt")
writeLines(txt, fileConn)
close(fileConn)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X