2017-05-31 3 views
0

これは既に答えられている場合、私はこれと全く同じようには見えませんでした。実行ログを作成したいが、書き込み機能を追加することができない。ここにサンプルがあります:Rの書き込み機能を付けることができないのはなぜですか?

私は結果ファイルを開くときに最後の行しか表示されません。私はまた、そのようにファイルを開閉しようとしました:

fCn <- file(fName) 
write('test1', fCn, append = TRUE) 
close(fCn) 

fCn <- file(fName) 
write('test2', fCn, append = TRUE) 
close(fCn) 

それは簡単であるようですね。どこが間違っていますか? TIA

+1

ファイル接続のモードを指定していない可能性があります(たとえば、 'file(...、open =" w ")')。デフォルトなしでは、 'write'を呼び出すたびに、 – joran

+0

...実際に 'write'は' cat'を呼び出すので、 '?cat'では' 'ファイルが接続であり、書き込みのために開いていれば、現在の位置から書き込まれます。開いていなければ、それは "wt"モードで呼び出し中に開かれ、再び閉じられる " – joran

答えて

2

オープン追記モードでの接続:

> fCn <- file(fName,open="a") 

全例:ファイルに書き込まれた両方の文字列で

> fName="out1.txt" 
> fCn <- file(fName,open="a") 
> write('test1', fCn, append = TRUE) 
> write('test2', fCn, append = TRUE) 
> close(fCn) 

結果。

代わりにあなただけのappend=TRUEでファイル名前(いない接続オブジェクト)に書き込むことができます。

> write('test1', "out2.txt", append = TRUE) 
> write('test2', "out2.txt", append = TRUE) 

をまた一から作成した2行の出力ファイルになります。

+0

唯一の問題は、最後の行に追加し、最初の' write'の新しい行を開始しないことです。あなたは毎回空白行を書く必要がありますか? – Masoud

+0

私はあなたがウィンドウで動いていると思われ、テキストモードで開くには '' at ''のモードを使う必要があります。 – Spacedman

+0

ええ、あなたは一人です。 t。それを忘れてしまった。 – Masoud

1

この目的でsinkを使用できます。実際にRコンソールで見ることができるものをテキストファイルに書き込む方が簡単なので、出力については確実です。

sink("C:/Users/mahdisoltanim/Desktop/a.txt", append= TRUE) 
cat("\n") 
cat("test1") 
cat("\n") 
cat("test2") 
sink() 
関連する問題