我在Windows上运行R,不是作为管理员。当我安装一个包时,下面的命令不起作用:

> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable

要安装一个包,我必须指定一个库位置:

install.packages("zoo", lib="C:/software/Rpackages")

要加载一个包,我还必须指定库的位置:

library("zoo", lib.loc="C:/software/Rpackages")

所有这些都没问题,但我想看看是否可以将C:/software/Rpackages添加到库路径中,这样就不必每次都输入它了。

当我在网上搜索时,我发现这样做的一种方法是编辑Rprofile。站点文件并添加行

.libPaths("C:/software/Rpackages")

然而,在这样做并启动RStudio之后,这是我得到的输出

> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library" 

我添加到Rprofile的. libpaths命令。网站似乎没有任何效果!为什么会这样呢?或者更重要的是,如何解决这个问题,以便在不输入库位置的情况下安装和加载包?

注意:如果我启动RStudio, .libPaths()命令似乎可以正常工作

.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"

这不是很奇怪吗?


当前回答

我在这里找到了我认为的解决方案(感谢SFU的Carl Schwarz),您添加了一个个人库,无论使用R还是Rstudio,它都是永久识别的(您不必每次会话都定义它),Rstudio将它作为我Mac机器上的默认值。我没有在SO上看到它明确地列出这一点,所以我总结了他们提供的步骤,先是Windows,然后是Mac。

Windows 7操作系统:

Create a directory on the drive where you want to have your personal library, e.g. C:\User\Rlibs (or another that you have permissions to) Search for/go to "Edit environment variable for your account" in the Windows search bar to edit control panel settings Click "New..." in the middle of the "Environmental Variables" window In the "New User Variable" window, type R_LIBS for the "Variable name", and the path to the personal library directory you created, e.g. C:\User\Rlibs Click OK and you should see the Variable/Value pair in the User variables window Click OK again

现在,当您启动R(或Rstudio)并键入. libpaths()命令时,您应该会看到您创建的个人库以及R系统库。

Mac:

在“Home”或“username”目录中创建一个名为Rlibs的文件夹 启动终端应用程序 类型:echo "R_LIBS=~/Rlibs" > . renviron确保拼写和大小写匹配。 输入ls -a查看目录中文件的完整列表,现在应该包括.Renvrion 验证.Renviron文件已正确设置:更多.Renviron

启动R/Rstudio并输入. libpaths(),您应该会看到个人库的新路径。

其他回答

我读了自述书。他们提到在命令行中使用. libpaths()来检查哪些路径存在。我之前有2个库路径。当我在我想要的地方使用命令.libpath("C:/Program Files/R/R-3.2.4revised/library")时,它改变了库路径。当我再次在命令行输入. libpaths()时,它显示了正确的路径。希望这能有所帮助

如果您没有管理员权限,打开Rprofile也会很有帮助。站点文件位于\R-3.1.0\etc,并添加:

.First <- function(){
  .libPaths("your path here")
}

这将在开始时直接计算.libPath()命令

我正在调查这个问题,因为R安装到默认位置有问题,而只是将包放入临时文件夹。原来这是Mcaffee Endpoint Security的最新更新,显然r有问题。你可以在安装包时禁用威胁保护,它会正常工作。

通过将代码放在默认工作目录下的. rprofile文件中,我设法解决了这个问题。

首先,我找到了默认工作目录的位置

> getwd()
[1] "C:/Users/me/Documents"

然后,我使用文本编辑器编写了一个简单的.Rprofile文件,其中包含以下一行

.libPaths("C:/software/Rpackages")

最后,当我启动R并运行.libPaths()时,我得到了所需的输出:

> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
getwd()
# [1] "C:/Users/..../software/My R studio"

复制上面的链接,带两个倒置逗号

.libPaths(new="C:/Users/..../software/My R studio")

安装包的默认路径将更改