9.8 安装R包

可以将每个R包开成一个手机App,R包的管理类似于手机应用的管理,包括搜索,下载,安装,打开,卸载等操作。

R包几种安装方式

  1. 本地安装

  2. install.package()联网安装,从CRAN安装;

  3. install_github()联网从github下载;

  4. BiocManager从bioconductor下载;

  5. 利用bioconda管理R包。

1 install.package()函数

pkgs:函数名,需要使用双引号

lib:安装目录,需要使用双引号

repos :软件镜像,默认为getOption(“repos”)

contriburl :备用镜像,当repos不完整时起作用

method:下载方式,通过libcurl或者wininet,wget,curl等available = NULL, destdir:安装包下载存储地址,默认设置

dependencies :是否设置依赖,默认不设置

type :包类型,源代码还是编译好的二进制版本,通过getOption(“pkgType”)查看

quite:安静安装

Ncpus:多线程安装

2 R包管理函数

#安装vcd包
install.packages("vcd")
#一次安装多个包
install.packages(c("ggplot2","pheatmap")) 
#查看已安装的包
installed.packages()

#加载R包
library(vcd)
require(vcd)

#升级软件包
update.packages()

#删除扩展包,从磁盘中移除
remove.packages("vcd")

#取消加载,从内存中移除
detach("package:vcd")

#其余函数
#列出R包中的函数
ls(package:base)
#加载包中的数据集
data(package="vcd")

#查看当前环境哪些包加载
find.package()
path.package()
#查看当前环境哪些包加载
find.package()
path.package()

search()
#列出当前包
(.packages())
#列出有效包
(.packages(all.available=TRUE)) 
path.package() #列出加载包的路径

3安装指定版本R包

library(devtools)
install_version("ggplot2", version = "3.2.1",repos = "http://cran.us.r-project.org")

4 Github站点R包安装

一些处于开发中的R包,也会将代码放到github上,放在github站点的R包需要使用单独的install_github()函数进行安装,使用该函数之前,需要先安装devtools包或者remotes包。

# 安装devtools
install.packages("devtools")
library(devtools)
#github在线安装
if (!require(remotes)) { install.packages("remotes") }
remotes::install_github("fbreitwieser/pavian")

有时候github站点无法访问,也可以将需要的R包下载到本地进行安装。

#下载到本地安装
#https://codeload.github.com/fbreitwieser/shinyFileTree/zip/refs/heads/master
#https://codeload.github.com/fbreitwieser/sankeyD3/zip/refs/heads/master
#https://codeload.github.com/fbreitwieser/pavian/zip/refs/heads/master 

install_local("sankeyD3-master.zip")
install_local("shinyFileTree-master.zip")
install_local("pavian-master.zip")

5 查看帮助文档

学习R语言需要经常查看帮助文档,包括R包的帮助文档,查看帮助文档可以快速了解一些函数的用法。不过由于开发者不同,因此帮助文档的水平也参差不齐。查看帮助文档,可以使用help()函数,一般的R函数都会自带案例代码,可以直接使用example()函数运行这些代码。此外,一些R包还提供一种vignette格式的文档。

#打开帮助页
help()  
#查看函数帮助
?ggplot2
#查看扩展包里函数
??heatmap  
#查看包帮助文档
help(package="ggplot2" )  
#运行函数案例代码
example("heatmap")
#查看vignettes格式文档  
browseVignettes() 
#R网站搜索
RSiteSearch("heatmap")

6 R包迁移

6.1 直接拷贝R包

R包一般都是一个完整文件,只需要将R包整个文件夹迁移走,一般就可以运行。对R包进行迁移时,尽量保证R版本一致。直接将整个R包目录拷贝到新的目录下即可。首先找到R包的安装目录,然后将整个目录打包,拷贝到另外一个目录解压缩。

> .libPaths()
[1] "C:/Users/genom/AppData/Local/R/win-library/4.3"
[2] "C:/Program Files/R/R-4.3.1/library" 

该方法只是一种方案,绝大部分包是可以的。但是注意不能将windows系统安装的迁移到Linux下。该方法也不是万无一失,比如R包需要系统一些配置,缺少了还是无法运行。

6.2 获取名字重新安装

获取要迁移的R包名字列表,在一台设备上使用循环逐个安装。但是该方法无法处理Bioconductor或者github上安装的包。

#保存A设备上的R包名字列表;
oldip <- installed.packages()[,1]
save(oldip,file = "installedPacckages.Rdata")

#在B设备上进行安装;
load("installedPacckages.Rdata")
newip <- installed.packages()[,1]
for (i in setdiff(oldip,newip)) {
  install.packages(i)
}

6.3 通过libPaths()函数

(base) wangtong 10:24:06 ~
#使用自己安装的R
$ /ifs1/Software/biosoft/R-4.3.2/bin/R

#列出当前R包目录,有两个
> .libPaths()
[1] "/home/wangtong/R/x86_64-pc-linux-gnu-library/4.1"
[2] "/ifs1/Software/biosoft/R-4.1.1/library"    
#通过new选项增加新的目录      
> .libPaths(new="/ifs1/Software/miniconda3/lib/R/library")
#新的目录增加进来了,这样一下子就多了很多包可以使用
> .libPaths()
[1] "/ifs1/Software/miniconda3/lib/R/library"
[2] "/ifs1/Software/biosoft/R-4.3.2/library" 
new选项会去掉之前默认的,可以通过在函数中增加一个向量增加多个目录。
> .libPaths()
[1] "/home/wangtong/R/x86_64-pc-linux-gnu-library/4.1"
[2] "/ifs1/Software/biosoft/R-4.1.1/library"          
> .libPaths(c(.libPaths(),"/ifs1/Software/miniconda3/lib/R/library"))
> .libPaths()
[1] "/home/wangtong/R/x86_64-pc-linux-gnu-library/4.1"
[2] "/ifs1/Software/biosoft/R-4.1.1/library"          
[3] "/ifs1/Software/miniconda3/lib/R/library"