如何更改R包的默认库路径
我尝试在工作计算机的本地驱动器上安装R和R studio,而不是在组织网络文件夹上,因为任何通过网络运行的东西都非常慢。安装时,目标路径显示它是我的本地C:驱动器。但是,当我安装新软件包时,显示的默认路径是我的网络驱动器,没有更改选项:如何更改R包的默认库路径,r,R,我尝试在工作计算机的本地驱动器上安装R和R studio,而不是在组织网络文件夹上,因为任何通过网络运行的东西都非常慢。安装时,目标路径显示它是我的本地C:驱动器。但是,当我安装新软件包时,显示的默认路径是我的网络驱动器,没有更改选项: .libPaths() [1] "\\\\The library/path/I/don't/want" [2] "C:/Program Files/R/R-3.2.1/library" 我正在运行Windows7专业版。如何删除库路径[1]并使路径[2]成为
.libPaths()
[1] "\\\\The library/path/I/don't/want"
[2] "C:/Program Files/R/R-3.2.1/library"
我正在运行Windows7专业版。如何删除库路径[1]并使路径[2]成为我安装的所有基本软件包和所有新软件包的主路径?请参阅帮助(启动)
和帮助(.libpath)
,因为您可能已经设置了多个路径。其中包括
- 设置
R\u LIBS\u用户
- 在
或.Rprofile
Rprofile.site
library("somePackage", lib.loc=.libPaths()[-1])
加载软件包时。Windows 7/10:如果您的
C:\Program Files
(或安装了R的任何地方)被阻止写入,就像我的一样,那么您将无法编辑RProfile.site
(就像我做的那样)。如上所述,我更新了R\u LIBS\u USER
,它成功了。然而,即使在阅读了几遍精美的手册并进行了广泛的搜索之后,我还是花了好几个小时来完成这项工作。本着节省别人时间的精神
假设您希望包驻留在C:\R\Library
:
C:\R\Library
开始
-->控制面板
-->用户帐户
-->更改我的环境变量
环境变量
窗口。如果您看到R\u LIBS\u USER
,请将其高亮显示,然后单击Edit
。否则,单击“新建”。这两个操作都会打开一个窗口,其中包含变量
和值
的字段R\u LIBS\u USER
已经存在,并且该值是指向我的桌面的路径。我在路径中添加了我创建的文件夹,上面用分号分隔<代码>C:\R\Library;C:\Users\Eric.Krantz\Desktop\R stuff\Packages。注意:我本可以删除桌面位置的路径,只需离开C:\R\Library
面对同样的问题(避免网络中的默认路径),我想到了这个解决方案,并在其他答案中给出了提示 解决方案是编辑
Rprofile
文件以覆盖默认指向主目录的变量R\u LIBS\u USER
以下是步骤:
~\target
Rprofile
文件。在我的例子中,它位于C:\ProgramFiles\R\R-3.3\library\base\R\R profile
R\u LIBS\u USER
的定义。在我的例子中,我将此行file.path(Sys.getenv(“R\u USER”),“R”,
替换为file.path(“~\target”,“R”,
) if(!nzchar(Sys.getenv("R_LIBS_USER")))
Sys.setenv(R_LIBS_USER=
file.path(Sys.getenv("R_USER"), "R",
"win-library",
paste(R.version$major,
sub("\\..*$", "", R.version$minor),
sep=".")
))
修改文件:
if(!nzchar(Sys.getenv("R_LIBS_USER")))
Sys.setenv(R_LIBS_USER=
file.path("~\target", "R",
"win-library",
paste(R.version$major,
sub("\\..*$", "", R.version$minor),
sep=".")
))
我曾为此挣扎了一段时间,因为我的工作计算机(使用Windows 10)在网络驱动器上创建了默认用户库,这会将R和RStudio的速度降低到无法使用的状态 如果这有助于某人,这是我发现的最简单的方法,无需管理员权限:
- 确保要将软件包安装到的目录存在。如果要遵守约定,请使用:
(例如,类似于:C:\Users\username\R\win library\R版本
)C:\Users\janebloggs\R\win library\3.6
- 在主目录(可能在网络驱动器上?)中创建一个
文件,并在其中写入一行定义.Renviron
变量作为自定义路径:R\u LIBS\u USER
R\u LIBS\u USER=C:\Users\janebloggs\R\win library\3.6
(也可以随意添加注释,行以#
开头)
如果存在.Renviron
文件,R将在启动时读取该文件,并使用其中定义的变量,然后在.Rprofile
中运行该代码。您可以在帮助(启动)
中阅读该文件
现在,它在会话之间应该是持久的!经过几个小时的尝试,以几种方式解决了这个问题,其中一些在这里介绍,对我来说(在Win 10上),创建Renviron文件的选项是有效的,但与上面写的略有不同 任务是更改变量R_LIBS_USER的值。要执行此操作,需要两个步骤:
R\u LIBS\u USER=“C:/R/Library”
.libPaths()
确认默认目录已更改。网络上的Windows 10
将软件包存储在网络驱动器上会大大降低R/R Studio的性能,并且由于必须通过服务器检索数据并将数据推送回本地主机这一瓶颈,您需要花费大量时间等待库的加载/安装。有关如何创建.RProfile o的说明,请参阅以下内容在您的本地计算机上:
Sys.getenv(“HOME”)
t
.libPaths(c("C:\Users\xxxxxx\Documents\R\3.4", "C:/Program Files/Microsoft/R Client/R_SERVER/library"))
message("*** Setting libPath to local hard drive ***")
trace(utils:::unpackPkgZip, quote(Sys.sleep(2)), at=12L, print=TRUE)
message("*** Add 2 second delay when installing packages, to accommodate virus scanner for R 3.4 (fixed in R 3.5+)***")
options(gsubfn.engine = "R")
message("*** Successfully loaded .Rprofile ***")
.libPaths(new = "/my/path/to/libs")