我们可以';t装载R包

我们可以';t装载R包,r,textmate,sweave,R,Textmate,Sweave,我将R升级到v2.14.0,并在升级过程中决定将标准软件包存储库移动到Dropbox,以便笔记本电脑和台式机始终保持同步。 我在.Renviron中设置了我的R_LIBS=/Dropbox/ToolBox/R/packages,当打开Rstudio或R.app(mac)时,我会收到以下命令: > Sys.getenv("R_LIBS") [1] "/Dropbox/Toolbox/R/packages" > .libPaths() [1] &

我将R升级到v2.14.0,并在升级过程中决定将标准软件包存储库移动到Dropbox,以便笔记本电脑和台式机始终保持同步。 我在
.Renviron
中设置了我的
R_LIBS=/Dropbox/ToolBox/R/packages
,当打开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+swave)中运行相同的命令时,我得到:

如上所述,当我从swave调用R时,它只会选择标准存储库。我创建了
Renviron.site
Rprofile.site
,阅读了
帮助(启动)
,但没有成功

有人能告诉我(一步一步)如何解决这个问题吗

更新: 当我从R中删除我的.Snw时,它会选择所有正确的文件夹。我不知道为什么从textmate完成时会做一些不同的事情


有什么想法吗?

试着在
“Rprofile.site”
文件中放一行这样的内容,该文件位于
$R\u HOME/etc/
中。(此处,
$R\u HOME
是在活动的
R
会话中运行
R.HOME()
返回的目录。)

(您还需要删除(可能是暂时删除)以下目录中的任何
“.Rprofile”
文件:(a)您的主目录;和(b)当前目录(从中启动R/swave)。)

然后,如果这不能彻底解决问题(对我来说确实有效),请保存并将LaTeX应用于包含以下区块的骨架
.Snw
文档

<<>>=
R.home()
.libPaths()
@
=
R.home()
.libPaths()
@

输出应该为问题的根源提供一些有用的提示。

多亏了Josh,我意识到问题不在于R本身,而在于textmate

Swave和R捆绑包都没有选择我的本地存储库,因为选项——vanilla在两个捆绑包中都设置为默认值

这是我的解决方案:

R束
  • 打开终端并转到$HOME/Library/Application Support/TextMate/Pristine Copy/Bundles
  • 键入
    >mate R.tmbundle
    这将直接在textmate中打开R bundle
  • 在support文件夹中有一个名为tmR.rb的文件
  • 向下滚动,直到找到以下行:
    stdin、stdout、stderr、pid=my_popen3(“R--vanilla--slave--encoding=UTF-82>&1”)
  • 删除--vanilla选项并保存
  • 斯维夫束
  • 在Textmate中,转到捆绑包>捆绑包编辑器>显示捆绑包编辑器
  • 单击Swave bundle展开
  • 转到swave、Typset和View并向下滚动,直到看到以下行:
    echo-e“setwd(“$SW”)\nSweave(“$TM_FILEPATH”)”| R--vanilla--quiet | pre
  • 将“香草”更改为“保存”
  • 重新加载包

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

    +1记录你在R的这一令人困惑的方面所做的研究。这可能与你如何开始学习有关;这个问题是关于一个类似的问题,TeXShop做了一些不同于仅在命令行上运行的事情,因此必须以不同的方式更改正确的环境变量。我照你说的做了,不幸的是没有成功。这是来自上述区块的输出:R.home()[1]“/Library/Frameworks/R.framework/Resources”>.libpath()[1]“/Library/Frameworks/R.framework/Versions/2.14/Resources/Library”,这似乎是
    R.home()
    的一个奇数值(尽管在Mac上可能会出现)。给定默认的
    .libpath()
    值所指向的目录,我希望看到更像
    “/Library/Frameworks/R.framework/Versions/2.14/Resources”
    。在我的电脑上,
    R.home()
    返回
    “C:/R/R-2.14.0”
    ,该目录包含
    R\u home/library
    R\u home/etc
    (包含
    “Rprofile.site”的目录)
    这似乎与TextMate启动Swave的位置有关。要确认这一点,您是否可以在R会话中尝试
    Swave(“docName.Snw”)
    (而不是从命令行运行Swave或让TextMate启动它)?Josh你是对的。当我从R中保存文件时,它会正确地拾取所有文件。所以我想知道当我从textmate中保存文件时发生了什么?真的不知道,因为这本质上是一个textmate问题。至于解决方案,你可以尝试将
    etc/Rprofile.site
    放在textmate用作
    R.home()的目录中
    运行swave时的目录为您保存。为了从其他人那里获得帮助,您可以突出地编辑您的问题,说明您所学到的知识。此外,您可以对这个答案进行投票,因为它确实指向了问题的根源,正如我所预期的那样;)最后,请使用您最终找到的任何解决方案进行更新。
    .libPaths(c("/Dropbox/Toolbox/R/packages", 
                .libPaths()))
    
    <<>>=
    R.home()
    .libPaths()
    @