2012-06-22 5 views
21

knitr markdownを使用して、現在のワークスペースに由来するオブジェクトを使ってオンザフライでレポートを作成できるかどうかは疑問です。再現性はここでは問題になりません。私もこの非常に細かいthread hereを読んでいます。RStudioを使用してワークスペースからまっすぐにknitrマークダウンする方法はありますか?

でも、特定のオブジェクトが見つからないというエラーメッセージが表示されます。

1)新しいマークダウン文書を開いて保存するとします。

2)lmオブジェクトを参照するチャンクを自分のワークスペースに書き込みます。コールsummary(mylmobject)

3)ニットそれです。

レポートは生成されますが、オブジェクトが見つからないために回帰出力が表示されません。注意してください。一般的には、オブジェクトを.Rdataに保存してから、マークダウンファイルから直接ロードするだけです。

現在の作業領域にあるオブジェクトをRマークダウンで使用する方法はありますか? これはまだ働いている間に非R人に何らかの出力を見せてくれるのが本当にいいですね。 (これら2つの別々のセッションです)

答えて

25

RStudioは、あなたのRマークダウンファイルをknit()する新しい Rセッションを開きますので、あなたの現在の作業スペース内のオブジェクトは、そのセッションに使用することはできません。二つの解決策:

  1. ファイルRStudioにfeature request、代わりに強制的に新しいセッションを開始する現在のRセッションで編み物をサポートするためにそれらを尋ねます。
  2. は自分で手動ニット:library(knitr); knit('your_file.Rmd')使用して、他のセッションからあなたのデータを保存する方が簡単かもしれません
+5

私はオプション1が再現性のある研究のパラダイムに反していると感じています。 –

+2

@BrandonBertelsenあなたは正しいですし、RStudioが毎回新しいRセッションを開くのはまさにその理由です。比較すると、Emacs/ESSは現在のRセッションでSweave/knitrを呼び出します。ただし、既存のRセッションを使用する利点があります。1.高速化が可能です。 2.コードをデバッグするのに役立つ –

+0

2012年にRstudioやKnitrに変更があったかどうかを知りたいのですが? –

22

(またはknit2html()をおR Markdown v2を使用している場合、あなたが一歩、またはrmarkdown::render()でHTML出力をしたい場合):

その後、
save.image("C:/Users/Desktop/example_candelete.RData") 

とあなたのMDファイルにロード:

load("C:/Users/Desktop/example_candelete.RData") 
+0

実際これは私が今行っていることです。 –

+2

問題は、セッションが非常に大きく、読み込むのに数分かかります。Rstudioが再現性のあるところから来ていますが、マークダウンを使用して大きなデータを持つプレゼンテーション可能なレポートを作成する場合は、手動でニットする必要があります。 – Wayne

+0

save.image()の代わりにsave(mylmobject)を使用して保存するものを選択できます。 –

0

Markdownreports packageは、オンザフライでマークダウン文書を解析するために設計されています。

関連する問題