R包终极解决方案

写在前面:

如何通过Google来使用ggplot2可视化这篇文章中,我们曾经介绍过R语言在生物信息学中的重要性。 这篇文章也激发了很多小伙伴学习的热情。学习R语言必然会安装各种各样的包,很多人在这一步就遇到了困难,

刚开始学习R语言的时候我们经常会遇到各种包安装错误,比如 package ‘airway’ is not available(for R version 3.1.0)等等,

这篇文章我们就来系统性地整理一些新手可能遇到的问题以及解决方案。

当然,你不一定现在就会遇到,但是如果你遇到了,请记住,可以在这里得到答案!

文章目录如下
  • 查看已经安装了和可以安装哪些R包
  • 如何安装旧版本的包
  • 如何切换镜像以及为什么要切换
  • 4种常见的R包安装方式

说明:

该文首发于我的个人博客以及生信技能树论坛,请点击文末的阅读原文前往查看详细资料。

总体思路

R语言里面的包其实是很简单的,因为它自带了一个安装函数 install.packages()基本上可以解决大部分问题。

但是如果出问题你需要从如下角度进行分析思考:

  • 你的R语言安装在什么机器什么?(linux(ubuntu?centos?),window,mac)
  • 你的R是什么版本:(3.1 ? 3.2 ? http://www.bio-info-trainee.com/1307.html )
  • 你的安装器是什么版本?(主要针对于bioconductor包的安装)
  • 你的联网方式是什么?https ?http ?
  • 你选择的R包镜像是什么?

R包安在哪里,可以安装哪些R包

首先在R里面输入 .libPaths()即可查看当前的R把包安装到了机器的哪个地方,这样可以直接进入目录去查看有哪些包,每个包都会有一个文件夹。

其次你可以用 installed.packages()查看你已经安装了哪些包。

最后你可以用 available.packages()可以查看自己的机器可以安装哪些包!

>.libPaths()[1] "C:/Users/jmzeng/Documents/R/win-library/3.1"[2] "C:/Program Files/R/R-3.1.0/library"colnames(installed.packages()) [1] "Package"               "LibPath"               "Version"               [4] "Priority"              "Depends"               "Imports"               [7] "LinkingTo"             "Suggests"              "Enhances"             [10] "License"               "License_is_FOSS"       "License_restricts_use"[13] "OS_type"               "MD5sum"                "NeedsCompilation"     [16] "Built"    ap <- available.packages()> dim(ap)

打开ap变量可以看出,我们想安装的 airway 包根本不在,当然,这肯定是不存在的。 因为 airway 是bioconductor的包,并非R默认。

需要调整 contriburl参数,如下:

> dim(available.packages(contriburl = "https://cran.rstudio.com/bin/windows/contrib/3.2/"))[1] 8110   17> dim(ap)[1] 8155   17> dim(available.packages(contriburl = "http://bioconductor.org/packages/3.1/bioc/bin/windows/contrib/3.2/"))[1] 1000   17> dim(available.packages(contriburl = "http://mirrors.ustc.edu.cn/bioc//packages/3.1/bioc/bin/windows/contrib/3.2/"))[1] 1000   17

用这个参数,可以看不同仓库,甚至不同版本的R包共有哪些资源!

如何安装旧版本的包

既然你点进来看,肯定是有需求。 一般来说,R语言自带的 install.packages函数来安装一个包时,都是默认安装最新版的。 但是有些R包的开发者他会引用其它的一些R包,但是它用的是旧版本的功能,自己来不及更新或者疏忽了。 而我们又不得不用他的包,这时候就不得不卸载最新版包,转而安装旧版本包。

首先你要用 remove.packages这个命令把现在的包卸载掉!

然后去包的官网上面找到它的旧版本的下载链接:

我这里拿ggplot2举例:

http://cran.r-project.org/src/contrib/Archive/ggplot2/

#packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_1.0.1.tar.gz"install.packages(packageurl, repos=NULL, type="source")#我这里安装它的1.0.1版本,而不是最新版!#还有很多其它方法,我就不一一举例了,这个是我认为最方便,最直观的!# install yesterday's version of checkpoint, by dateinstall.dates('checkpoint', Sys.Date() - 1)# install earlier versions of checkpoint and devtoolsinstall.versions(c('checkpoint', 'devtools'), c('0.3.3', '1.6.1'))

很明显,我是在StackOverflow*上面搜索得到的解决方案,O(∩_∩)O哈哈~ 你可以参考:http://stackoverflow.com/questions/17082341/installing-older-version-of-r-package

广而告之:

这里强力推荐和公众号另一位编辑:思考问题的熊 两人共同完成的如何使用google系列文章,值得大家学习应用。

如何通过Google来使用ggplot2可视化

用谷歌搜索来使用ggplot2做可视化(下)

如何切换镜像

这个技巧很重要,一般来说,R语言自带的 install.packages函数来安装一个包时,都是用的默认的镜像!

如果你是用的Rstudio这个IDE,默认镜像就是:https://cran.rstudio.com/

如果你直接用的R语言,那么就是:http://cran.us.r-project.org

但是一般你安装的时候会提醒你选择,而我们需要更改成自己最方便的

install.packages(pkgs, lib, repos = getOption("repos"),    contriburl = contrib.url(repos, type),    method, available = NULL, destdir = NULL,    dependencies = NA, type = getOption("pkgType"),    configure.args = getOption("configure.args"),    configure.vars = getOption("configure.vars"),    clean = FALSE, Ncpus = getOption("Ncpus", 1L),    verbose = getOption("verbose"),    libs_only = FALSE, INSTALL_opts, quiet = FALSE,    keep_outputs = FALSE, ...)

如果是在国内, install.packages ("ABC",repos="http://mirror.bjtu.edu.cn/ "), 换成北大的镜像你会体验飞一般的感觉!

如果想永久设置,就用options修改即可。

如果你是Rstudio的IDE,只需要鼠标点击直接进入全局设置,一劳永逸的选择好镜像!

你可以check一下每个镜像的包是不是一致的:

dim(available.packages(contriburl = "http://cran.rstudio.com/bin/windows/contrib/3.2/"))

更改镜像主页及包的版本即可查看所有镜像各提供哪些包!

当然,我们的bioconductor其实也是有镜像的,只是大部分人都不知道,也不会去用而已!

source("http://bioconductor.org/biocLite.R")options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")biocLite("RGalaxy")##这样就用中科大的镜像来下载包啦##bioconductor还有很多其它镜像:https://www.bioconductor.org/about/mirrors/##https://stat.ethz.ch/R-manual/R-devel/library/utils/html/chooseBioCmirror.html

4种常见的R包安装方式

R自带函数直接安装

这个是最简单的,而且不需要考虑各种包之间的依赖关系。

对普通的R包,直接 install.packages()即可,一般下载不了都是包的名字打错了,或者是R的版本不够。如果下载了安装不了,一般是依赖包没弄好,或者你的电脑缺少一些库文件,如果实在是找不到或者下载慢,一般就用 repos=来切换一些镜像。

 > install.packages("ape")  ## 直接输入包名字即可Installing package into ‘C:/Users/jmzeng/Documents/R/win-library/3.1’(as ‘lib’ is unspecified)  ##一般不指定lib,除非你明确知道你的lib是在哪里trying URL 'http://mirror.bjtu.edu.cn/cran/bin/windows/contrib/3.1/ape_3.4.zip'Content type 'application/zip' length 1418322 bytes (1.4 Mb)opened URL   ##根据你选择的镜像,程序会自动拼接好下载链接urldownloaded 1.4 Mbpackage ‘ape’ successfully unpacked and MD5 sums checked  ##表明你已经安装好包啦The downloaded binary packages are in  ##程序自动下载的原始文件一般放在临时目录,会自动删除    C:\Users\jmzeng\AppData\Local\Temp\Rtmpy0OivY\downloaded_packages

对于bioconductor的包,我们一般是

source("http://bioconductor.org/biocLite.R") ##安装BiocInstaller#options(BioC_mirror=”http://mirrors.ustc.edu.cn/bioc/“) 如果需要切换镜像biocLite("ggbio")#或者直接BiocInstaller::biocLite('ggbio') ## 前提是你已经安装好了BiocInstaller#某些时候你还需要卸载remove.packages("BiocInstaller") #然后安装新的

进入主页找到包下载地址

可以选择用R自带的下载器来下载,也可以把下面的url拷贝到浏览器用浏览器来下载

packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz"packageurl <- "http://cran.r-project.org/src/contrib/Archive/gridExtra/gridExtra_0.9.1.tar.gz"install.packages(packageurl, repos=NULL, type="source")#packageurl <- "http://www.bioconductor.org/packages/2.11/bioc/src/contrib/ggbio_1.6.6.tar.gz"#packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_1.0.1.tar.gz"install.packages(packageurl, repos=NULL, type="source")

这样安装的就不需要选择镜像了,也跨越了安装器的版本!

下载到本地后再安装

download.file("http://bioconductor.org/packages/release/bioc/src/contrib/BiocInstaller_1.20.1.tar.gz","BiocInstaller_1.20.1.tar.gz")##也可以选择用浏览器下载这个包install.packages("BiocInstaller_1.20.1.tar.gz", repos = NULL)

如果你用的RStudio这样的IDE,那么直接用鼠标就可以操作了。或者用 choose.files()来手动选择把下载的源码 BiocInstaller_1.20.1.tar.gz放到哪里。但这种形式大部分安装都无法成功,因为R包之间的依赖性很强!

命令行版本安装

如果是linux版本,命令行从网上自动下载包如下:

sudo su - -c \"R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""

如果是linux,命令行安装本地包,在shell的终端

sudo R CMD INSTALL package.tar.gz

window或者mac平台一般不推荐命令行格式,可视化那么舒心,何必自讨苦吃呢?

文:Jimmy

校对编辑:思考问题的熊

原文发布于微信公众号 - 生信技能树(biotrainee)

原文发表时间:2017-02-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Netkiller

Linux 系统安全与优化配置

Linux 系统安全与优化配置 目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验证重试次数 1.3. 禁止证书登陆 ...

3055
来自专栏杨建荣的学习笔记

使用Linux命令发送邮件(r2笔记94天)

在平时的工作中,可能很多环境都有自己的内网环境,如果发生一些问题的时候,可以通过内网环境发送邮件到指定的邮箱中。这种略显智能的方式可能在很多工作场景中使用,一般...

3495
来自专栏软件开发

一个小时学会Git

最近要与部门同事一起做技术分享,我选择了Git,因为Git 是一种在全球范围都广受欢迎的版本控制系统。在开发过程中,为了跟踪代码,文档,项目等信息中的变化,版本...

2509
来自专栏生信技能树

点击此文,无需转发,即可下载上千个免费R包

写在前面: 谨以此文献给那些“奋斗”在转发送别人资源,为了博人眼球,而践踏别人的辛勤的劳动成果的公众号们。 当然了,R包本来就是免费的,你只是不会下载而已,所以...

3868
来自专栏北京马哥教育

centos7.0体验与之前版本的不同

今天下午,没事干,在一台机器上装了一个centos7玩一玩,发现与之前版本有很大不同,不知道rhel7是不是也是这样,毕竟现在centos属于redhat了。 ...

2037
来自专栏Netkiller

Linux 系统安全与优化配置

Linux 系统安全与优化配置 Linux 系统安全问题 ---- 目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验...

3535
来自专栏移动开发之家

IJKPlayer编译so支持HTTPS的踩坑历程

同志,github来过没?右转不屑 ----> https://github.com/CarGuo

1043
来自专栏mwangblog

开始使用Manjaro

2673
来自专栏从零开始学自动化测试

appium+python自动化59-多台设备并行

做android自动化的时候,启动一个appium服务,只能匹配一个手机去自动化执行。有时候想同一套代码,可以在不同的手机上执行,测下app在不同手机上兼容性。...

2252
来自专栏乐百川的学习频道

在Visual Sutdio 2017中使用boost库

对C++有一定了解的同学一定听说过boost库,这是C++的一个著名类库,在C++的地位感觉可以和Spring在Java中相比。boost向来有准标准库之称,很...

19610

扫码关注云+社区