web-dev-qa-db-ja.com

RStudioで実行しているスクリプトからすべての出力を取得するにはどうすればよいですか

149行のスクリプトの出力を見たいのですが。スクリプト全体を通して、私が見たいテーブルがあります。 RStudioIDEを使用しています。過去にはTinn-Rを使用しました。スクリプト全体を実行すると、コード行と印刷されたオブジェクトがコンソールに表示されます。

たとえば、ここに抜粋があります

attach(uniquehuman.race.eth)
partA.eth <-table(Ethnicity, Sex,useNA="ifany")
partA.eth
margin.table(partA.eth,1)#row totals
margin.table(partA.eth,2)#column totals
nrow(uniquehuman.race.eth)#total logged in

上記のコードは、テーブルと必要な数のテキスト出力を提供します。次に、コンソールを保存するか、すべてをコピーしてテキストファイルに貼り付けることができます。

RStudioでそれを行うにはどうすればよいですか?私がそれに最も近いのは、各行でCTRL-ENTERを押すことですが、それを149回実行したくありません。 「すべて実行」でCTRL-SHIFT-ENTERを押すと、Rはすべてのデータを処理してオブジェクトをメモリに入れますが、出力は表示されません。

すべての出力を表示したり、出力をテキストファイルに送信したりする方法を教えてください。

19
Farrel

私はRStudio開発者の1人です。フィードバックをありがとう-私はバグを記録します。

それまでの間、回避策の1つは、コンソールからsource(filename, echo=T)を実行することです。

23
Joe Cheng

実行するコードを選択して_CTRL+ENTER_を押すだけで、RStudioで必要な操作を実行できます。これは、Tinn-Rの場合とまったく同じように、複数の行で機能します。すべてを一度に詳細に実行する場合は、_CTRL-A CTRL-ENTER_を押します。

テキストファイルに保存するための別のオプションとして、_?sink_を確認できます。

_sink(file='path/to/somefile.ext')
... # the code generating output
sink()
_

sink()は、コンソールのすべての出力を接続(この場合はファイル)にリダイレクトします。これは標準出力であり、警告やエラーではありません。このコマンドは、print()cat()sprintf()などと組み合わせて、分析で出力ファイルを作成する場合にも役立ちます。

RStudioで「すべて実行」を使用する場合、前述の関数のいずれかを明示的に使用して、ファイルへの出力を生成する必要があります。原則として、スクリプト全体を実行すると、RStudioはサイレントに実行されます。

10
Joris Meys

Options(verbose = TRUE)を使用して、スクリプトまたはセッション全体ですべての出力を詳細に出力します。

1
MarkD