.libPaths()
[1] "\\\\per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell/R/win-library/2.15"
[2] "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
Run Code Online (Sandbox Code Playgroud)
第一个项目是我的公司"我的文档"文件夹,从我的姓氏路径中的撇号在R CMD INSTALL --build
我正在制作的软件包上使用时会引起各种各样的悲痛,更不用说当我离线时使用安装的软件包的问题来自网络.
我想C:/Program Files/R/R-2.15.2/library
用作默认值,但我不想依赖于Rprofile.site
.
> .libPaths(.libPaths()[2:3])
> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library"
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但只有在我重新开始我的R会话之后,我才回到原来的.libPaths()输出......
Restarting R session...
> .libPaths()
[1] "\\\\per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell/R/win-library/2.15"
[2] "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
Run Code Online (Sandbox Code Playgroud)
我想也许.libPaths()
正在使用R_LIBS_USER
> Sys.getenv("R_LIBS_USER")
[1] "//per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell/R/win-library/2.15"
Run Code Online (Sandbox Code Playgroud)
所以我试图使用Sys.unsetenv("R_LIBS_USER")
它来解除它,但它不会在会话之间持续存在.
如果重要,这里有一些可能相关的环境变量......
> Sys.getenv("R_HOME")
[1] "C:/PROGRA~1/R/R-215~1.2"
> Sys.getenv("R_HOME")
[1] "C:/PROGRA~1/R/R-215~1.2"
> Sys.getenv("R_USER")
[1] "//per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell"
> Sys.getenv("R_LIBS_USER")
[1] "//per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell/R/win-library/2.15"
> Sys.getenv("R_LIBS_SITE")
[1] ""
Run Code Online (Sandbox Code Playgroud)
我已经尝试过,Sys.unsetenv("R_LIBS_USER")
但这也不会在会话之间留下来
ags*_*udy 22
只需R_LIBS
在Windows中设置环境变量即可
R_LIBS=C:/Program Files/R/R-2.15.2/library
Run Code Online (Sandbox Code Playgroud)
重启R.
小智 17
这个问题有点迟了,但可能对其他人有用.我要建立自己的路径(并删除原来的路径)我有:
.libPaths()
内部- [R检查当前库路径 ;R.home()
Sys.getenv("R_HOME")
R-Home\R-3.2.2\etc\Rprofile.site
每次R内核启动时都会读取.因此,任何修改都将持续到R的每次运行.Rprofile.site
通过添加以下内容进行编辑,.libPaths(.libPaths()[2])
.libPaths("d:/tmp/R/win-library/3.2")
这个怎么运作?
Ctr+Shift+F10
)这将每次都有效.
使用此功能在 .Rprofile
set_lib_paths <- function(lib_vec) {
lib_vec <- normalizePath(lib_vec, mustWork = TRUE)
shim_fun <- .libPaths
shim_env <- new.env(parent = environment(shim_fun))
shim_env$.Library <- character()
shim_env$.Library.site <- character()
environment(shim_fun) <- shim_env
shim_fun(lib_vec)
}
set_lib_paths("~/code/library") # where "~/code/library" is your package directory
Run Code Online (Sandbox Code Playgroud)
原始来源:https : //milesmcbain.xyz/hacking-r-library-paths/