我将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)
{{3} }和q1没有成功。
有人可以解释一下如何解决这个问题吗?(/ p>)
更新: 当我从R中扫描我的.Snw时,它会选择所有正确的文件夹。我不确定为什么从textmate那里做的事情做了不同的事情。
有什么想法吗?
答案 0 :(得分:3)
感谢Josh,我意识到问题不在于R本身,而在于文本中。
Sweave和R捆绑包都没有拿起我的本地存储库,因为选项--vanilla在两个捆绑包中都是默认设置。
这是我的解决方案:
>mate R.tmbundle
这将直接在textmate中打开R包stdin, stdout, stderr, pid = my_popen3("R --vanilla --slave --encoding=UTF-8 2>&1")
echo -e "setwd('$SW')\nSweave('$TM_FILEPATH')" | R --vanilla --quiet | pre
幸福的日子又回来了: - )
答案 1 :(得分:1)
尝试在位于"Rprofile.site"
的{{1}}文件中添加这样的行。 (此处,$R_HOME/etc/
是在有效$R_HOME
会话中运行R.home()
返回的目录。)
(您还希望从(a)您的主目录中移除(可能是暂时的)任何R
文件;以及(b)当前目录(从中启动R / Sweave)。)
".Rprofile"
然后,如果这不能彻底解决问题(并且它确实对我有用),则Sweave然后将LaTeX应用于包含以下块的骨架.libPaths(c("/Dropbox/Toolbox/R/packages",
.libPaths()))
文档。
.Snw
输出应该为您的问题来源提供一些有用的提示。