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 条评论
登录 后参与评论

相关文章

来自专栏夏时

两款 Js 插件为你的网站添彩

791
来自专栏编程

在Jekyll博客添加评论系统:gitment篇

最近在Github Pages上使用Jekyll搭建了个人博客 ( jacobpan3g.github.io/cn ), 当需要添加评论系统时,找了一下国内的几...

24510

在Debian 7上安装PocketMine服务器

PocketMine是适用于我的世界Android和iOS版本的第三方服务器。该服务支持插件,允许您与其他人自定义游戏。本指南详细介绍了在运行Debian 7的...

844
来自专栏生信技能树

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

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

3828
来自专栏美丽应用

Volumio升级失败的解决方案

571
来自专栏逸鹏说道

关于链接文件的探讨

跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 偶尔在用,其实就是软链接和硬链接两种 ...

31310
来自专栏AI星球

看我玩 Mac--有趣的软件

近几天,在 Mac 上捣鼓了一些有趣的东西,分享给 Mac 新手们,一起装逼一起飞,我们友谊的小船可不能说翻就翻奥!哈哈。

872
来自专栏FreeBuf

Kali 2.0 安装与使用指南

关于kali使用前的一些配置,网上有很多版本,但是几乎都很雷同,或者是不全,或者是根本就没有测试过,或者是有的方法是错的(换句话说是版本变化的差异),因此让很多...

4405
来自专栏Fundebug

Vue UI:Vue开发者必不可少的工具

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

1325
来自专栏挖掘大数据

如何高效地合并Spark社区PR到自己维护的分支

最近刚刚忙完Spark 2.2.0的性能测试及Bug修复,社区又要发布2.1.2了,国庆期间刚好有空,过了一遍2.1.2的相关JIRA,发现有不少重要修复2.2...

2698

扫描关注云+社区