Sweave无法加载R软件包
我将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
但是当我在.Snw(Textmate + Sweave)中运行相同的命令时,我得到:
> Sys.getenv("R_LIBS")
[1] ""
> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.14/Resources/library"
正如你从上面看到的,当我从Sweave调用R时,它只会选择标准的存储库。我创建了Renviron.site
, Rprofile.site
,读取help(Startup)
类似问题q1和q2没有成功。
任何人都可以帮我解释一下如何解决这个问题吗?
更新:当我从R中发出我的.Snw文件时,它会提取所有正确的文件夹。 我不知道为什么什么时候从textmate做了一些不同的事情。
有任何想法吗?
感谢乔希,我意识到问题不在于R本身,而在于文本。
Sweave和R bundles都没有选择我的本地存储库,因为选项--vanilla在这两个包中默认设置为。
这里是我的解决方案:
R捆绑
>mate R.tmbundle
这将直接在>mate R.tmbundle
打开R bundle stdin, stdout, stderr, pid = my_popen3("R --vanilla --slave --encoding=UTF-8 2>&1")
Sweave Bundle
echo -e "setwd('$SW')nSweave('$TM_FILEPATH')" | R --vanilla --quiet | pre
echo -e "setwd('$SW')nSweave('$TM_FILEPATH')" | R --vanilla --quiet | pre
快乐的日子又回来了:-)
尝试在你的位于$R_HOME/etc/
中的"Rprofile.site"
文件中放入这样一行。 (这里, $R_HOME
是在活动的R
会话中运行R.home()
返回的目录。)
(您也可以从(a)您的主目录;(b)当前目录(从中启动R / Sweave)中删除(可能是暂时的)任何".Rprofile"
文件。)
.libPaths(c("/Dropbox/Toolbox/R/packages",
.libPaths()))
然后,如果这不能直接解决问题(它确实对我.Snw
),Sweave,然后将LaTeX应用到包含以下块的骨架.Snw
文档。
<<>>=
R.home()
.libPaths()
@
输出应该提供一些有用的提示来解决问题的根源。
链接地址: http://www.djcxy.com/p/56741.html