【问题标题】:Sweave in RStudio cannot find objects loaded in global environmentRStudio中的Sweave找不到全局环境中加载的对象
【发布时间】:2015-03-31 19:54:43
【问题描述】:

阅读this post 我想我可以直接在.Rnw 文档中使用在全局环境中加载的R 对象,并在RStudio 中将它们直接编译为PDF。但不幸的是,这对我不起作用......

我想创建一个data.framesummary,它无疑已经加载到我的全局环境中。

在控制台中评估 summary(JLLdata) 会产生正确的输出。但是,当我尝试在我的 .Rnw 文件中包含 summary(JLLdata) 时,我收到错误 (chunk 1) Object 'JLLdata' not found

这里是我的.Rnw 语法:

\documentclass{article}

\begin{document}
\SweaveOpts{concordance=TRUE}

<<JLLdata>>=
summary(JLLdata)
@

\end{document}

这里是R Studio的截图(可以看到JLLdata在全局环境中,编译PDF错误)

【问题讨论】:

    标签: r rstudio sweave


    【解决方案1】:

    Sweave .Rnw 文档中的代码在单独的 R 会话中运行,因此它无法访问您在控制台中加载或创建的对象。您必须在 Sweave 代码块中显式加载数据,以便在您调用 summary 时可以访问它。

    【讨论】:

    • 谢谢@Thomas,你是对的。包括 load(file = "/path/globalenvironmnetsaved.RData") 就可以完成这项工作..虽然这有点烦人的解决方案,因为我的 .RData 有 200MB 大,因此编译 PDF 需要一段时间......
    • 考虑改用 knitr,它提供了一个缓存选项,大大减少了编译时间。
    • 或者只是在命令行中使用Sweave(),因为R本身具有GUI按钮的便利性不可避免地会带走的灵活性。也许写一个小实用函数来简化这个过程,把它放在你的 .Rprofile 或个人包中以便于加载。比如:sweave2pdf &lt;- function(file) { texfile &lt;- Sweave(file); tools::texi2pdf(texfile) }
    猜你喜欢
    • 2017-12-30
    • 2016-03-05
    • 2016-03-07
    • 2018-10-27
    • 2018-12-23
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多