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里面输入 .libPaths() 即可查看当前的 R 包安装到了机器的哪个地方,这样,可直接进入目录查看有哪些包,每个包都会有一个文件夹。
我安装了哪些包?
你可以用 installed.packages() 查看你已经安装了哪些包。
可以安装哪些 R 包?
你可以用 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
> 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
install.packages(packageurl, repos=NULL, type="source")
#我这里安装它的1.0.1版本,而不是最新版!
#还有很多其它方法,我就不一一举例了,这个是我认为最方便,最直观的!
# install yesterday's version of checkpoint, by date
install.dates('checkpoint', Sys.Date() - 1)
# install earlier versions of checkpoint and devtools
install.versions(c('checkpoint', 'devtools'), c('0.3.3', '1.6.1'))
上面的解决方案
是在 StackOverflow* 上搜索得到的
。
参考:http://stackoverflow.com/questions/17082341/installing-older-version-of-r-package
如何切换镜像
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 ,只需直接进入全局设置,一劳永逸的选择好镜像!
可以检查一下每个镜像的包是不是一致的:
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
常见的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 ##根据你选择的镜像,程序会自动拼接好下载链接url
downloaded 1.4 Mb
package ‘ape’ successfully unpacked and MD5 sums checked
##表明你已经安装好包啦
The downloaded binary packages are in