【R语言】解决package的安装路径与加载路径不一致问题

经常性遇到更新包/依赖之后,还是报错:
error: namespace 'package' 0.xx is being loaded, >=0.xx is required

查看已安装的包及其版本和路径

installed.packages()[,c('Package','Version','LibPath')] 

原因是
install.packages()默认包安装lib目录是.libPaths()的第一个元素,Rstudio中的.libPaths()默认第一个是用户目录,第二个是系统目录

> .libPaths() 
[1] "C:/Users/sy_ta/Documents/R/win-library/3.6" "C:/Program Files/R/R-3.6.0/library" 

而Rstudio默认的library()目录是系统目录
所以如果不指定lib更新package,会只更新了用户目录下的package,但每次读取的还是系统目录的,导致无法更新成功。

网上查到的方法:
在R所在目录下的etc/Rprofile.site文件末尾添加一句
.libPaths("C:/Program Files/R/R-3.6.0/library")
可以修改library路径,但只能解决直接启动R。启动Rstudio时.libPaths()还是两个路径

最终解决办法

  1. 将环境变量R_LIBS_USER设置为所需库文件夹的文件路径的值,确保library首先显示在.libPaths()中。
    在Windows中设置环境变量R_LIBS_USER,控制面板(系统属性 - 高级系统属性 -环境变量 - 用户变量),添加一个新的用户变量:R_LIBS_USER=C:/Program Files/R/R-3.6.0/library
    这时候重新打开Rstudio输入.libPaths()就只有一个路径了。
    但是如果R安装在C盘,安装包时会提示目录没有写入权限,所以还需要下面这步。
  2. 更改文件夹写入修改权限:(如果R不是安装在C盘下此步骤可以忽略)
    https://jingyan.baidu.com/article/8275fc86f2b7bb06a13cf605.html

你可能感兴趣的:(r语言,开发语言)