这是一个非常简单的请求,我不敢相信我还没有找到解决方案,但是我一直在寻找它,但是没有运气。

我在Emacs中加载了一个.Rnw文件,我使用M-n s对其进行编译。
一切正常,甚至打开了R缓冲区。伟大的。但是那个缓冲区
完全没用:它不包含我刚刚来源的对象!

最小的.Rnw文件示例:

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

使用M-n s,我现在有了一个新的R缓冲区,并加载了一个 session ,但是:
> foo
Error: object 'foo' not found

真令人失望。我想交互式地处理数据。
我该如何实现?我不想逐行采购文件,或者
每次更改代码时,请使用C-c C-c或类似方法逐个区域进行更改。
理想情况下,应该像RStudio的源函数一样,让我
充分准备的R session 。

我还没有尝试过编织,只使用了编织器。

编辑:eval=TRUE块选项似乎未导致正确的行为。

最佳答案

最近在ESS中更改了此行为。现在,sweave和knitr在全局环境中直接执行,就像在命令行中自己编写时一样。因此,请再等几周,直到ESSv13.09停产或使用开发版本。

另外,您也可以将ess-swv-processing-command设置为“%s(%s)”,除了自动加载库外,您将获得相同的结果。

作为记录,除非另有说明,否则knitr(与sweave相比)会评估其自身环境中的所有内容。

[编辑:出了点问题。我再也看不到正确的.ess_weave了。可能是一些git commit messup了。因此,它在13.09中未修复。立即修复。对不起。]

关于r - ESS和针织/编织: How to source the Rnw file into an interactive session?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18673063/

10-12 03:33