我试图在我的工作计算机上的本地驱动器上安装R和R studio,而不是组织网络文件夹,因为任何通过网络运行的都非常慢。安装时,目标路径显示它是我的本地C:驱动器。但是,当我安装新软件包时,显示的默认路径是我的网络驱动器,没有更改选项:
.libPaths()
[1] "\\\\The library/path/I/don't/want"
[2] "C:/Program Files/R/R-3.2.1/library"
我正在运行Windows 7专业版。如何删除库路径[1]并使路径[2]成为我安装的所有基础包和所有新包的主要路径?
答案 0 :(得分:32)
请参阅help(Startup)
和help(.libPaths)
,因为您可能已经设置了多种可能性。其中有
R_LIBS_USER
.libPaths()
或.Rprofile
Rprofile.site
等等。
在这种特殊情况下,您需要向后移动并在设置\\\\The library/path/I/don't/want
时取消设置。
要忽略它,你需要明确地覆盖它,即通过
library("somePackage", lib.loc=.libPaths()[-1])
加载包时。
答案 1 :(得分:30)
Windows 7:如果你的C:\Program Files
(或者安装了R的地方)被阻止写作,就像我的那样,那么你会感到沮丧地编辑RProfile.site
(正如我所做的那样)。如上所述,我更新了R_LIBS_USER
并且它有效。然而,即使在阅读了好几本精细的手册并进行了广泛的搜索之后,我花了几个小时来做这件事。本着拯救别人时间的精神......
我们假设您希望您的软件包位于C:\R\Library
:
C:\R\Library
Start
- > Control Panel
- > User Accounts
- > Change my environmental variables
Environmental 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
。注意:我可以删除桌面位置的路径,只需离开<?php
for($i = 1; $i<=10; $i++){ ?>
<a class="pagenumber" href="?p=<?php echo $i; ?>"><?php echo $i; ?></a>
<?php } ?>
。答案 2 :(得分:13)
面对同样的问题(避开网络中的默认路径),我在其他答案中给出了提示,我找到了这个解决方案。
解决方案是编辑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",
。支持此解决方案的文档为here
原始文件:
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=".")
))
答案 3 :(得分:2)
我为此工作了一段时间,因为我的工作计算机(使用Windows 10)在网络驱动器上创建了默认用户库,这会将R和RStudio减慢到无法使用的状态。
如果这对某人有帮助,这是我发现的最简单的方法,不需要管理员权限:
C:\Users\username\R\win-library\rversion
(例如,类似C:\Users\janebloggs\R\win-library\3.6
).Renviron
文件,然后在其中写入一行,将R_LIBS_USER
变量定义为您的自定义路径:< / li>
R_LIBS_USER=C:\Users\janebloggs\R\win-library\3.6
(也可以添加评论,行以#
开头)
如果存在.Renviron
文件,则R将在启动时读取它,并使用在其中定义的变量,然后在.Rprofile
中运行代码。您可以在help(Startup)
中了解它。
现在它应该在会话之间保持不变!
答案 4 :(得分:2)
将软件包存储在网络驱动器上会大大降低R / R Studio的性能,并且由于必须检索和推送数据的瓶颈,您需要花费大量时间等待库的加载/安装通过服务器返回到本地主机。有关如何在本地计算机上创建.RProfile的说明,请参见以下内容:
Sys.getenv("HOME")
以获取您的主目录(这是您的.RProfile的存储位置,R始终在其中检查软件包-如果软件包存储在网络上,则在网络上)< / li>
.Rprofile
的文件并将其放在:\YOUR\HOME\DIRECTORY\ON_NETWORK
(在R控制台中键入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 ***")
#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+)***")
# fix problem with tcltk for sqldf package: https://github.com/ggrothendieck/sqldf#problem-involvling-tcltk
options(gsubfn.engine = "R")
message("*** Successfully loaded .Rprofile ***")
现在,您可以在本地主机上享受更快的应用程序性能,而与将程序包存储在网络上并减慢一切运行速度相比。
答案 5 :(得分:1)
我想我尝试了上述所有方法,但对我不起作用。不过这行得通:
在主目录下,创建一个名为“.Renviron”的文件
在那个文件中,写:
setWindowModality(Qt::ApplicationModal);
保存并重新启动 R,如果它打开了
答案 6 :(得分:0)
经过几个小时的尝试以几种方式解决该问题,其中一些在此进行了描述,对我而言(在Win 10上)可以选择创建Renviron文件,但与此处编写的内容略有不同以上。 任务是更改变量R_LIBS_USER的值。为此,需要执行两个步骤:
R_LIBS_USER=c:/R/Library
它已经工作了几天。