Sweave无法加载R包

Alt*_*ons 7 textmate r sweave

我将R升级到v2.14.0,随着升级,我决定将标准软件包存储库移至Dropbox,因此笔记本电脑和台式机始终处于同步状态.我设置我R_LIBS=/Dropbox/ToolBox/R/packages.Renviron,当打开Rstudio或R.app(mac)时,我得到以下命令:

> Sys.getenv("R_LIBS")
[1] "/Dropbox/Toolbox/R/packages"

> .libPaths()
[1] "/Dropbox/Toolbox/R/packages"      
[2] "/Library/Frameworks/R.framework/Versions/2.14/Resources/library"
[3] "/Applications/RStudio.app/Contents/Resources/R/library
Run Code Online (Sandbox Code Playgroud)

但是当我在.Snw(Textmate + Sweave)中运行相同的命令时,我得到:

> Sys.getenv("R_LIBS")
[1] ""

> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.14/Resources/library"
Run Code Online (Sandbox Code Playgroud)

正如你可以在上面看到,当我从Sweave调用R使得只挑选了标准repository.I创建Renviron.site,Rprofile.site阅读help(Startup)下面类似的问题Q1Q2没有成功.

有人可以解释一下如何解决这个问题吗?

更新:当我从R中扫描我的.Snw时,它会选择所有正确的文件夹.我不确定为什么从textmate完成后会做出不同的事情.

有任何想法吗?

Alt*_*ons 3

感谢 Josh,我意识到问题不在于 R 本身,而在于 textmate。

Sweave 和 R 包都没有获取我的本地存储库,因为这两个包中的选项 --vanilla 均设置为默认值。

这是我的解决方案:

R 捆绑包

  1. 打开终端并转到 $HOME/Library/Application Support/TextMate/Pristine Copy/Bundles
  2. 输入>mate R.tmbundle此命令将直接在 textmate 中打开 R 包
  3. 在支持文件夹中有一个名为 tmR.rb 的文件
  4. 向下滚动直到找到这一行: stdin, stdout, stderr, pid = my_popen3("R --vanilla --slave --encoding=UTF-8 2>&1")
  5. 删除 --vanilla 选项并保存

编织捆绑包

  1. 在 Textmate 中,转到 Bundles>Bundles Editor>Show Bundles Editor
  2. 单击 Sweave 捆绑包以展开
  3. 转到 Sweave、Typset & View 并向下滚动,直到看到以下行:echo -e "setwd('$SW')\nSweave('$TM_FILEPATH')" | R --vanilla --quiet | pre
  4. 将 --vanilla 更改为 --save
  5. 重新加载捆绑包

快乐的日子又回来了:-)