На языке сценариев R, как писать строки текста, например. следующие две строки
Hello
World
в файл с именем "output.txt"?
На языке сценариев R, как писать строки текста, например. следующие две строки
Hello
World
в файл с именем "output.txt"?
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()
, как в этом примере:
> cat("Hello",file="outfile.txt",sep="\n")
> cat("World",file="outfile.txt",append=TRUE)
Затем вы можете просмотреть результаты с помощью R с помощью
> file.show("outfile.txt")
hello
world
Как насчет простой writeLines()
?
txt <- "Hallo\nWorld"
writeLines(txt, "outfile.txt")
или
txt <- c("Hallo", "World")
writeLines(txt, "outfile.txt")
1. Использование аргумента файла в cat
.
cat("Hello World", file="filename")
2. Используйте sink
функцию перенаправить все выходные данные print и 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)
Вы можете сделать это в одном утверждении
cat("hello","world",file="output.txt",sep="\n",append=TRUE)
Чтобы закруглить возможности, вы можете использовать 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"
На основе лучший ответ:
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.
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