Rスクリプト言語で、どうやってテキスト行を書くのですか?次の2行
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)
これで、with Rの結果を見ることができます。
> file.show("outfile.txt")
hello
world
単純なwriteLines()
についてはどうですか?
txt <- "Hallo\nWorld"
writeLines(txt, "outfile.txt")
または
txt <- c("Hallo", "World")
writeLines(txt, "outfile.txt")
あなたは単一のステートメントでそれをすることができます
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.
に基づいて ベストアンサー :
file <- file("test.txt")
writeLines(yourObject, file)
close(file)
yourObject
は文字列形式である必要があることに注意してください。必要ならばas.character()
を使って変換してください。
しかし、これはevery保存の試みにはあまりにも多くの入力です。 RStudioでスニペットを作成しましょう。
グローバルオプション>>コード>>スニペットで、これを入力します。
snippet wfile
file <- file(${1:filename})
writeLines(${2:yourObject}, file)
close(file)
次に、コーディング中にwfile
と入力してを押します。 Tab。
可能性を締めくくるには、必要ならば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"
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
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はファイルの終わりにnewlineを追加しますが、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オブジェクトとwriteLinesa文字ベクトルを使うことです。引数として。だから書き出す。1:10という数字は、writeLinesにキャストする必要がありますが、catの場合と同じように使用できます。
cat(1:10)
writeLines(as.character(1:10))
パイプとwrite_lines()
のreadrからの片付け版
library(tidyverse)
c('Hello', 'World') %>% write_lines( "output.txt")