R包精讲第一篇:如何查看你已经安装了和可以安装哪些R包?

最近经常出现一个错误,类似于package ‘airway’ is not available (for R version 3.1.0)

就是某些包在R的仓库里面找不到,这个错误非常普遍,stackoverflow上面非常详细的解答:

http://stackoverflow.com/questions/25721884/how-should-i-deal-with-package-xxx-is-not-available-for-r-version-x-y-z-wa

在阅读这个答案的时候,我发现了一个非常有用的函数!available.packages()可以查看自己的机器可以安装哪些包!

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包安装到了什么地方?

> .libPaths()
[1] "C:/Users/jmzeng/Documents/R/win-library/3.1"
[2] "C:/Program Files/R/R-3.1.0/library"

这样可以直接进入这些目录去看看有哪些包,每个包都会有一个文件夹!

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

> 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"                
>

可以具体到你所安装的包的16个信息!!!

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

####

ap <- available.packages()
> dim(ap)

[1] 7662   17
可以得到你现在所要能够安装的包!!

得到的ap是一个矩阵[1] 7662   17 如下:
 QQ截图20160411205120
我们就很容易查看自己想安装的包是否存在于正在使用的R的仓库里面!

> grep('A3',rownames(ap))
[1]    1 1685 2212
> grep('ABCp2',rownames(ap))
[1] 4
> grep('airway',rownames(ap))
integer(0)
> 
或者用"airway" %in% rownames(ap)
可以看出,我们想安装的airway包根本不存在,当然,这肯定是不存在的。
因为airway是bioconductor的包,不是R的包!!
用这个参数,可以看不同仓库,甚至不同版本的R包共有哪些资源!!!

See also Names of R's available packages, ?available.packages.
Alternatively, the list of available packages can be seen in a browser for 
CRAN, CRAN (extras), Bioconductor, R-forge and RForge.

Comments are closed.