9.8 安装R包
可以将每个R包开成一个手机App,R包的管理类似于手机应用的管理,包括搜索,下载,安装,打开,卸载等操作。
R包几种安装方式
本地安装
install.package()联网安装,从CRAN安装;
install_github()联网从github下载;
BiocManager从bioconductor下载;
利用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"