R语言R包安装大法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

R语言R包安装大法
如果你还没有完美的配置好R语言,请参考:
软件安装 | CentOS下安装配置Java
软件安装 | CentOS下安装配置T exlive2018
软件安装 | CentOS下安装配置R
正文开始:
install.packages
R包安装首先应该知道的方式,这种包主要来自于CRAN库,例如xlsx包,google搜索可见:
这种包就可以直接使用install.packages('packageName')进行安装,安装的时候会弹出选择镜像,我一般喜欢用兰州大学的镜像,或者可以直接在函数中写明,如下:
试开URL’/CRAN/bin/macosx/el-
capitan/contrib/3.4/xlsx_0.6.1.tgz‘
Content type ‘application/octet-
stream’ length 403830 bytes (394 KB)
downloaded 394 KB
下载的二进制程序包在
/var/folders/hy/37lqwmm102q4phtx4
jsjjv5c0000gn/T//Rtmp0PngqO/download
ed_packages里
>
不报错即表示安装完成!可是,这个xlsx是R中最难安装的包之一,因为它依赖于rJava包,这个rJava就牵扯到Java的配置,所以如果出现如下报错:
报错1:
错误: package or namespace load
failed for ‘xlsx’:
loadNamespace()里算’rJava’
时.onLoad失败了,详细内容:
调用: dyn.load(file, DLLpath =
DLLpath, …)
错误: 无法载入共享目标对象
‘/Library/Frameworks/R.framework/Vers
ions/3.4/Resources/library/rJava/libs/rJav
a.so’::
dlopen(/Library/Frameworks/R.frame
work/Versions/3.4/Resources/library/rJav
a/libs/rJava.so, 6): Library not loaded:
@rpath/libjvm.dylib
Referenced from:
/Library/Frameworks/R.framework/Versio
ns/3.4/Resources/library/rJava/libs/rJava.s
o
Reason: image not found
报错2:
configure: error: Java Development Kit
(JDK) is missing or not registered in R
Make sure R is configured with full
Java support (including JDK). Run
R CMD javareconf
as root to add Java support to R.
If you don’t have root privileges, run
R CMD javareconf -e
to set all Java-related variables and
then install rJava.
报错3:
conftest.c:1:17::致命错误**jni.h:没
有那个文件或目录
include
编译中断。

make: * [conftest.o] 错误 1
Unable to compile a JNI program
但其实是有jni.h文件的:
/usr/lib/jvm/java-1.8.0-openjdk-
1.8.0.181-3.b13.el7_5.x86_64/include/jni.h
遇到这种情况,之前我会花很长时间去想办法解决这个报错点,但是现在我建议直接从正规途径下载并安装新版oracle-jdk即可!
参考:CentOS下安装配置Java
biocLite
生物信息分析必备的安装方式,这种包主要来自于大名鼎鼎的
Bioconductor,其中收录了大量的生物学相关统计分析包,以DESeq2为例:
点击进去即可见到包的安装方法:
第一步要source (如果source函数里用https不行就改成http再试一试!),如果报错则参考 mac下安装配置R.md

‘stringdist’, ‘stringi’, ‘subplex’,
‘survival’, ‘sysfonts’, ‘testit’,
‘testthat’, ‘TH.data’,
‘trimcluster’, ‘TSP’, ‘utf8’, ‘vcd’,
‘vegan’,
‘VennDiagram’, ‘VGAM’,
‘viridis’, ‘XML’, ‘yaml’, ‘zoo’
Update all/some/none? [a/s/n]: n
>
问是否要更新全部/部分R包,还是都不需要更新,我一般不更新输入n回车即可完成,除非遇到不更新不能用的情况…
当然,除了这两种最常用的方式以外,也可以先把包下载到本地
再进行安装,但是不在迫不得已的情况下不建议大家这么做,因为包的安装还涉及到众多依赖包的安装,这个是下载后本地安装无法解决的!
如何一次安装多个包
我们在配置新装的R语言或者突然需要用到很多新的R包的时候,可能需要一下安装很多包,这个时候应该怎么办?
不管有没有安装过全部重装吗?
还是,识别未装的包,并仅对其进行安装
呢?
看起来这样就可以解决问题了,但是…
哪些包是需要install.packages安装?哪
些需要biocLite安装?
小编以前是靠经验,基本上能知道一些熟悉的R包是来源于CRAN还是Bioconductor,剩下的就检索一下,分开进行上面的安装步骤!
不过,后来小编觉得这样也太不智能了,一定有方法可以再优化一下代码,寻找一个可以判断R包来源的函数/包(主要是懒得搜索…),万万没想到…找到了一个可以自行判断是否已安装并安装还未安装的包的包:
p_load
/web/packages/pacman/vignettes/Introduction_to_pacman. html
p_load是pacman包中的一个函数,所以首先进行安装pacman 包:
在执行完成后会显示如下:
Warning message:
In library(package, lib.loc = lib.loc,
character.only = TRUE, logical.return =
TRUE, :
不存在叫‘pacman’这个名字的程辑包注意,这是一个警告,是在安装之前判断了不存在这个包,所以不代表未安装成功 (可以关闭警告) !
为了测试pacman,先把之前已经安装好的xlsx(来源于CRAN)和DESeq2(来源于Bioconductor)给删除掉:

‘/Library/Frameworks/R.framework/Vers
ions/3.4/Resources/library’中删除程序包
**
(因为没有指定‘lib’)
不知道你有没有发现,这个p_load很符合我们日常(不编程)的使用习惯,不用c()表示向量,也不用给包名加双引号!就可以运行了:试开URL’/bin/macosx/el-
capitan/contrib/3.4/xlsx_0.6.1.tgz‘
Content type ‘application/x-gzip’
length 403830 bytes (394 KB)
========================
==========================
downloaded 394 KB
The downloaded binary packages are
in
/var/folders/hy/37lqwmm102q4phtx4
jsjjv5c0000gn/T//RtmpW01cor/download
ed_packages
xlsx installed
Bioconductor version 3.5
(BiocInstaller 1.26.1), ?biocLite for help
A newer version of Bioconductor is
available for this version of R,
BiocUpgrade for help
试开
URL’http:///packages/3.5/bioc/bin/mac
osx/el-
capitan/contrib/3.4/DESeq2_1.16.1.tgz‘
Content type ‘application/x-gzip’
length 3580154 bytes (3.4 MB)
========================
==========================
downloaded 3.4 MB
The downloaded binary packages are
in
/var/folders/hy/37lqwmm102q4phtx4
jsjjv5c0000gn/T//RtmpW01cor/download
ed_packages
DESeq2 installed
可见,一个p_load函数就可以胜任(判断出xlsx和DESeq2没装,就直接安装,而其他已经存在的包就不会再重复安装),不报错即表示缺少的包安装成!
既然安装完了,就可以library加载一下,然后使用啦!
但是尝试过一次性library很多包的小伙伴可能知道,library并不支持向量形式的多个包一起加载,例如:
> need.packs = c(“survival”,
“pROC”, “xlsx”)
> library(need.packs)
Error in library(need.packs) : 不存在叫
‘need.packs’这个名字的程辑包
所以小编之前常用lapply来实现:
不过,这句微微有些别扭的命令…现在也不需要了,因为p_load 函数也一并做了,也就是说:
•对于已经安装的包,就相当于library
•对于未安装的包,就相当于先安装然后又library了!
文化人总结一下:
pacman包的p_load函数,嗯,不错!
当然除了常规的CRAN和Bioconductor,你可能也经常会看到,有些R包是放在Github(人们常说的同性交友网站 )上的,包括很多R包的作者会把及时更新的包发布在Github上,所以想要使用这些包,就要通过 install_github进行安装
install_github
以TCGAbiolinks为例,虽然在Bioconductor上也有,但是随着GDC的更新完善,TCGAbiolinks也在随之更新,所以安装最新版的TCGAbiolinks极为关键:
点击进去即可见到包的安装方法:
其实,pacman包中也有从GitHub上安装R包的函数p_load_gh,不过也是基于install_github去写的:
不过,不管使用哪种方式,在安装GitHub上的R包时你会发现,一定要告诉函数这个包属于哪个仓库,例如“BioinformaticsFMRP/TCGAbiolinks” 的“BioinformaticsFMRP”,否则就无法安装。

这样的话,即便我记住了这个包的名称,每次要安装,也还是要去google一下这个包的库,或者翻看自己的脚本记录,然后复制粘贴到函数里,不是很麻烦吗?
所以,有没有一个包可以直接通过包名就能从Github上安装相应的R包呢?
githubinstall
https:///hoxo-m/githubinstall
当然,毕竟是Github,如果网络环境不好的话,很可能会报错:Error in curl::curl_download(input,
tmpFile, mode = “wb”, quiet
= !showProgress) :
Timeout was reached: Connection
timed out after 10001 milliseconds
如果提示如下,则表示找到了BioinformaticsFMRP下的TCGAbiolinks包
Suggestion:
BioinformaticsFMRP/TCGAbiolinks T
CGAbiolinks
Do you want to install the package
(Y/n)?
输入Y确认安装即可(同时会安装各种依赖包):
Downloading GitHub repo
BioinformaticsFMRP/TCGAbiolinks@mast
er
from URL
https:///repos/Bioinformat
icsFMRP/TCGAbiolinks/zipball/master
Installing TCGAbiolinks

更炫酷的功能
1、模糊匹配。

例如,你不记得包名哪些字母要大小写:
Suggestion:
BioinformaticsFMRP/TCGAbiolinks T
CGAbiolinks
Do you want to install the package
(Y/n)?
2、全局搜索。

例如有很多叫cats的包:
Select one repository or, hit 0 to
cancel.
1: amurali2/cats cats
2: danielwilhelm/cats No description
or website provided.
3: hilaryparker/cats An R package for
cat-related functions #rcatladies
4: lolibear/cats No description or
website provided.
5: rafalszota/cats No description or
website provided.
6: tahir275/cats ff
Selection:
3、列举R包。

例如hadley开发了哪些包,或者作者是不是叫hadly?
[1] “hadley” # 应该是hadley
username
package_name
title
1 hadley
RcppDateTime
2 hadley S
3 Helpers for
Programming with the S3 Object System
3 hadley assertthat User
friendly assertions for R
例如,有哪些lasso算法相关的R包:
4、查看Github上函数的源代码:
githubinstall的更多功能大家可以参考官方文档,接下来,让我们再详细叙事下镜像的事情...
默认的镜像是什么?
install.packages() 的时候需要你选择镜像,当然你可以在脚本中直接设置 repos 参数:
但是在安装依赖包的时候,包的默认下载的路径则是https://,如
下:
试开
URL’https:///src/contrib/bit_1.1-
14.tar.gz‘
Content type ‘application/x-gzip’
length 54779 bytes (53 KB)
而安装Bioconductor包的时候,不会有弹框让你选择镜像,此时默认的镜像就是:
http:///packages
Installing package(s) ‘limma’
试开
URL’/packages/3.7/bioc/src/contrib/lim
ma_3.36.2.tar.gz‘
为什么要设置镜像?
很显然,本来默认的镜像都是美帝那一套,有时候不太符合我们中国的国情,所以…不稳定或者墙很难爬的时候就需要换成一个国内的镜像,用起来会比较安逸!
有哪些可用镜像?
官方给出的CRAN和Bioconductor镜像源可以分别进到网页里查看:
CRAN:
/mirrors.html
Bioconductor:
https://www./about/mirrors/
其中,Bioconductor在国内可用镜像目前只有两个:
中科大:
https:///bioc/
清华:
/bioconductor
如何设置镜像?
•第一种,设置安装包的下载镜像源,可以在安装包之前执行如下命令:
BioC_mirror: /bioconductor
Using Bioconductor 3.7 (BiocInstaller
1.30.0), R 3.5.1 (2018-07-02).
Installing package(s) ‘limma’
试开
URL’/bioconductor/packages/3.7/bioc/s
rc/contrib/limma_3.36.2.tar.gz‘
Content type ‘application/octet-
stream’ length 1465903 byte s (1.4 MB)
downloaded 1.4 MB
可见,这个包是从刚设置的清华源上下载的(速度确实快到飞起…)。

按理说这种临时设置的方式足够用了,但是有两个问题:
1.这种设置方式是一次性的,即当你重新打开了一个R窗口,需要再次运行options才能使用该镜像!
2.安装依赖包时,仍然会用R默认的镜像去下载!
•第二种,直接修改默认镜像。

需要找到 R的安装路径下的 etc目
录下的Rprofile.site 文件并做一些配置,对于这个文件的实际路径,可以在R中执行如下命令查看:
如果不存在这个文件,就要在上示命令返回的路径下新建这个Rprofile.site文件,并在文件中粘贴如下内容:
此处注意,BioC_mirror 一定要在末尾处添加,如果是直接添加在local内部,运行:
会报如下错误:
Warning: 无法在貯藏處
/bioconductor/src/contrib中读写索引:
无法打开
URL’/bioconductor/src/contrib/PACKAG
ES‘
镜像源测试
重新打开R,安装TCGAbiolinks:
我们截取其中两个依赖包的安装:
试开
URL’/bioconductor/packages/3.7/bioc/s
rc/contrib/AnnotationDbi_1.42.1.tar.gz‘
Content type ‘application/octet-
stream’ length 4337155 bytes (4.1 MB)
========================
==========================
downloaded 4.1 MB
Installing AnnotationDbi
试开
URL’/CRAN/src/contrib/RSQLite_2.1.1.ta
r.gz‘
Content type ‘application/octet-
stream’ length 2192835 bytes (2.1 MB)
========================
==========================
downloaded 2.1 MB
Installing RSQLite
可见,不管是CRAN还是Bioconductor的包,全部是来自清华源,安装的是又快又好,因为TCGAbiolinks需要大量的依赖包,所以在新机器上基本上很难一次安装成功,而国内源就可以极大的克服这个问题!
** installing vignettes
** testing if installed package can be
loaded
* DONE (TCGAbiolinks)
> library(TCGAbiolinks)
>
哈哈,果然厉害!。

相关文档
最新文档