6

これは非常に単純な要求であり、これに対する解決策をまだ見つけていないとは信じられませんが、幸運にも遠くまで探し続けてきました。

Emacsに.Rnwファイルをロードして、M-n sコンパイルに使用しています。すべてがうまく機能し、Rバッファも開きます。偉大な。しかし、そのバッファはまったく役に立たない: 先ほど調達したオブジェクトが含まれていない!

最小限の.Rnwファイルの例:

\documentclass{article}
\begin{document}
<<>>=
  foo <- "bar"
@
\end{document}

を使用M-n sすると、セッションがロードされた新しい R バッファーが作成されましたが、次のようになります。

> foo
Error: object 'foo' not found 

それは残念です。インタラクティブにデータをいじってみたいと思います。どうすればそれを達成できますか?C-c C-cコードを変更するたびに、ファイルを行ごと、または地域ごとに、または同様の方法でソース化したくありません。理想的には、完全に準備された R セッションを残してくれる RStudio のソース関数のようにする必要があります。

私はまだこれをsweaveで試したことはなく、knitrでのみ試しました。

編集:eval=TRUEチャンク オプションは正しい動作にならないようです。

4

2 に答える 2

6

この動作は最近 ESS で変更されました。sweave と Knitr は、コマンド ラインで自分で記述した場合と同様に、グローバル環境で直接実行されるようになりました。ESSv13.09 がリリースされるまであと数週間待つか、開発版を使用してください。

ess-swv-processing-commandまたは、 "%s(%s)" に設定することもできます。ライブラリの自動ロードを除いて、同じ結果が得られます。

記録として、knitr (sweave とは対照的に) は、特に指示しない限り、独自の環境ですべてを評価します。

[編集: 何か問題が発生しました。正しい .ess_weave が表示されなくなりました。おそらく、git commit の混乱が再び発生した可能性があります。そのため、13.09 では修正されていません。今それを修正します。ごめん。]

于 2013-09-07T15:03:03.513 に答える