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

相关文章

来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏杨龙飞前端

scrollto 到指定位置

2514
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2587
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5496
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6888
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2717
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4035
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

2978
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3165
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4928

扫码关注云+社区