我试图在我的工作计算机上的本地驱动器上安装R和R studio,而不是组织网络文件夹,因为任何通过网络运行的都非常慢.安装时,目标路径显示它是我的本地C:驱动器.但是,当我安装新软件包时,显示的默认路径是我的网络驱动器,没有更改选项:
.libPaths()
[1] "\\\\The library/path/I/don't/want"
[2] "C:/Program Files/R/R-3.2.1/library"
Run Code Online (Sandbox Code Playgroud)
我正在运行Windows 7专业版.如何删除库路径[1]并使路径[2]成为我安装的所有基础包和所有新包的主要路径?
Dir*_*tel 39
看help(Startup),help(.libPaths)因为你可能已经设置了几种可能性.其中有
R_LIBS_USER.libPaths()在.Rprofile或Rprofile.site和更多.
在这种特殊情况下,您需要向后移动并在设置时取消\\\\The library/path/I/don't/want设置.
要忽略它,你需要明确地使用它来覆盖它,即通过
library("somePackage", lib.loc=.libPaths()[-1])
Run Code Online (Sandbox Code Playgroud)
加载包时
Eri*_*ntz 35
Windows 7:如果您C:\Program Files(或安装了R的地方)被阻止写入,就像我的那样,那么您将受到沮丧的编辑RProfile.site(就像我一样).如上所述,我更新R_LIBS_USER并且工作正常.然而,即使在阅读了好几本精细的手册并进行了广泛的搜索之后,我花了几个小时来做这件事.本着拯救别人时间的精神......
假设您希望您的软件包驻留在C:\R\Library:
C:\R\LibraryStart- > Control Panel- > User Accounts- >Change my environmental variablesEnvironmental Variables窗口弹出.如果看到R_LIBS_USER,请突出显示并单击Edit.否则点击New.这两项行动打开一个窗口,与场Variable和Value. R_LIBS_USER已经存在,价值是我桌面的路径.我在路径中添加了我创建的文件夹,如上所述以分号分隔.C:\R\Library;C:\Users\Eric.Krantz\Desktop\R stuff\Packages.注意:我可以删除桌面位置的路径,然后离开C:\R\Library.Mar*_*rco 17
面对同样的问题(避免网络中的默认路径),我在其他答案中给出了提示.
解决方案是编辑Rprofile文件以覆盖R_LIBS_USER默认指向主目录的变量.
这里的步骤:
~\target.Rprofile文件.在我的情况下它是在C:\Program Files\R\R-3.3.3\library\base\R\Rprofile.R_LIBS_USER.就我而言,我取代了这条线file.path(Sys.getenv("R_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=".")
))
Run Code Online (Sandbox Code Playgroud)
修改文件:
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=".")
))
Run Code Online (Sandbox Code Playgroud)
将包存储在网络驱动器上会大大降低 R / R Studio 的性能,并且由于必须通过服务器检索和推送数据的瓶颈,您会花费大量时间等待库加载/安装返回到您的本地主机。有关如何在本地计算机上创建 .RProfile 的说明,请参阅以下内容:
Sys.getenv("HOME")以获取您的主目录(这是您的 .RProfile 将存储的位置,R 将始终检查那里是否有包 - 如果包存储在那里,则该目录位于网络上).Rprofile并将其放入(在 R Console 中:\YOUR\HOME\DIRECTORY\ON_NETWORK输入后得到的目录)Sys.getenv("HOME").Rprofile应该是这样的:#search 2 places for packages- install new packages to first directory- load built-in packages from the second (this is from your base R package- will be different for some)
.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 ***")
Run Code Online (Sandbox Code Playgroud)
#insert a sleep command at line 12 of the unpackPkgZip function. So, just after the package is unzipped.
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+)***")
Run Code Online (Sandbox Code Playgroud)
# fix problem with tcltk for sqldf package: https://github.com/ggrothendieck/sqldf#problem-involvling-tcltk
options(gsubfn.engine = "R")
message("*** Successfully loaded .Rprofile ***")
Run Code Online (Sandbox Code Playgroud)
现在,您可以在本地主机上享受应用程序更快的性能,而不是将包存储在网络上并减慢一切速度。
我为此苦苦挣扎了一段时间,因为我的工作计算机(使用 Windows 10)在网络驱动器上创建了默认用户库,这会使 R 和 RStudio 减慢至无法使用的状态。
如果这对某人有帮助,这是我发现的最简单的方法,不需要管理员权限:
C:\Users\username\R\win-library\rversion例如,类似C:\Users\janebloggs\R\win-library\3.6:).Renviron文件(可能位于网络驱动器上?),然后在其中写入一行将变量定义R_LIBS_USER为您的自定义路径:R_LIBS_USER=C:\Users\janebloggs\R\win-library\3.6
(也可以随意添加评论,行以 开头#)
如果.Renviron文件存在,R 将在启动时读取它并使用其中定义的变量,然后再运行.Rprofile. 您可以在 中阅读相关内容help(Startup)。
现在它应该在会话之间持续存在!
| 归档时间: |
|
| 查看次数: |
91805 次 |
| 最近记录: |