2017-09-07 16 views
0

私はwriteLines()を使用してログファイルを作成していますが、ログファイルに書き込まれたテキストもコンソールに表示されます。テキストをファイルに書き込んだり同時にコンソールにテキストを印刷する接続を定義する方法はありますか?複数の接続(例:コンソール出力とログファイル)への書き込み/書き込み

何かのように:

con1 <- file("log.txt", "w") 
con2 <- console() 

writeLines("Lorem ipsum dolor sit amet", con=c(con1, con2)) 

close(con1) 

私のソリューションこれまでのことを行うには、いくつかの余分な行を必要とします。

con1 <- file("log.txt", "w") 

log.txt <- "Lorem ipsum dolor sit amet" 

writeLines(log.txt) 
writeLines(log.txt, con=con1) 

close(con1) 

これを行う簡単な方法があるのだろうかと思います。

答えて

2

split引数はsink()に使用できます。たとえば、

con1 <- file("log.txt", "w") 
sink(con1, split = TRUE) 
log.txt <- "Lorem ipsum dolor sit amet" 
writeLines(log.txt) 
sink() # back to normal 
+0

このアイデアをお寄せいただきありがとうございます。すべてのwriteLines()をログファイルに入れるのではなく、コンソールに入れたい場合はどうすればいいですか? 'con1 < - ファイル(" log.txt "、" w ")' 'sink(con1、split = TRUE)' log.txt < - "Lorem ipsum dolor sit amet" writeLines(log.txt) txt.console < - "テキストコンソール" writeLines(txt.console)#このテキストはコンソールにのみ表示され、ログファイルには表示されません。 – RFelber

+0

最後のコード行を参照してください。 'sink(con1、split = TRUE)'と 'sink()'を複数回呼び出すことができます。 – user2554330

関連する問題