Overview
虽然已经用了很久的R
语言,但一直没整理过,正好需要在我们的云服务器上安装R
,所以一并记录下来了。下面的过程虽然是在Ubuntu 14.04
上安装的,但是对于其他版本的系统,R
和R packages
的安装都大同小异。
1. 安装R
1.1 添加源
Ubuntu 14.04
中的R
版本比较旧,默认安装可能会出很多问题(我试过了)。所以最好添加一个新的源。
在etc/apt/source.list
中添加如下信息:
deb http://<my.favorite.cran.mirror>/bin/linux/ubuntu trusty/
这里的<my.favorite.cran.mirror>
换成一个适合你的镜像地址,可以从https://cran.r-project.org/mirrors.html找到所有的镜像,比如我选择了厦门大学的镜像:http://mirrors.xmu.edu.cn/CRAN/
,那么在etc/apt/source.list
中添加:
deb http://mirrors.xmu.edu.cn/CRAN/bin/linux/ubuntu trusty/
1.2 更新源
sudo apt-get update
不出意外会遇到一个错误:
W: GPG 错误:http://mirrors.xmu.edu.cn trusty/ Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY 51716619E084DAB9
运行下面的命令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
之后重新更新源:
sudo apt-get update
就可以顺利更新了。
1.3 安装
sudo apt-get install r-base
如果要从源码安装R,使用下面的命令:
sudo apt-get install r-base-dev
2. 安装 R packages
直接在命令行输入R
,就可以进入R
语言的命令行交互模式,使用几个命令可以快速熟悉一下R。
如果你想查看一个函数的用法,比如mean函数(R中用来求均值的函数),可以使用
help(mean)
或者
?mean
.libPaths()
,查看R
中包安装的目录,在我的Ubuntu14.04
下,有三个输出下面的内容:[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library" [3] "/usr/lib/R/library"
说明上面三个目录都可以作为
R packages
安装的目录,其中,如果你在安装包时不指定,默认会安装在第一个目录/usr/local/lib/R/site-library
,而/usr/lib/R/library
是R
自带包的所在目录。library()
,可以查看R中以及安装的所有包,这个函数会去.libPaths()
中列出的所有目录查看,并按照目录将各种包列出来:Packages in library ‘/usr/local/lib/R/site-library’: digest Create Compact Hash Digests of R Objects entropy Estimation of Entropy, Mutual Information and Related Quantities FSelector Selecting attributes randomForest Breiman and Cutler's Random Forests for Classification and Regression RWeka R/Weka interface RWekajars R/Weka interface jars Packages in library ‘/usr/lib/R/site-library’: rJava Low-level R to Java interface Packages in library ‘/usr/lib/R/library’: base The R Base Package boot Bootstrap Functions (originally by Angelo Canty for S) class Functions for Classification cluster Cluster Analysis Extended Rousseeuw et al. codetools Code Analysis Tools for R compiler The R Compiler Package ...
这里省略了一些包,并没有全部列出来,你可能很好奇,
rJava
这个包为什么会比较特别,安装在了一个其他包都不在的地方。下面在介绍FSelector
包安装的时候会讲到。install.packages("mypackage")
,用来安装的函数,默认会安装在.libPaths()
列出来的第一个目录下。这个函数也提供了参数lib
用来指定你要把包安装的位置。library("mypackage")
,载入一个已经安装的包,如果还没有安装这个包,则会报错,程序中断。require("mypackage")
,载入一个已经安装的包,如果还没有安装这个包,则显示警告信息,然后程序继续向下执行。(与library("mypackage")
相比,require
强烈不推荐)。remove.packages("mypackage")
,卸载package。update.packages( )
,更新package,可以定期执行。
安装
Bioconductor 包
:Bioconductor
提供了一个函数用来安装Bioconductor 包
:首先,载入这个安装函数:
source("http://bioconductor.org/biocLite.R")
之后,就可以用这个函数安装
Bioconductor 包
了:biocLite("mypackage")
下面还有一些方法,不太常用,列出来参考:
- getOption("defaultPackages"):查看启动R时自动载入的包。
- vignette('mypackage'):有的包,特别是bioconductor的包有vignette,用函数查看
- openVignette('mypackage'):这个函数也可以查看vignette,更好用一些
- RSiteSearch("helpinfor"):搜索R网站上的“helpinfor”相关信息
- help.start():查看已经安装包的详细HTML文档
- search():查看当前载入的包
- sessionInfo():查看R中载入的包
- methods():查看某个S3泛型函数中所有的方法或者一个类中所有的方法(S3:S version 3)
- showMethods(class = "myClass"):查看S4类的方法
- findMethods("myMethods"):查看method的代码
- class(myObject):查看某个对象的类
- getClass(“class/package”):查看某个class或者包的具体内容
- getSlots("class"):查看某个class的slot
- slotNames(MyObject):查看某个对象的slot。
- Myobject@slotNames:访问对象Myobject的slot值,这个@可以连续用。
查询包内信息:
- ?function/method:查看某个“函数”或者“方法”的详细内容
- class?graph::graph:查看“组”的详细内容的一个例子。这个例子的来源是查询graph包时候,查看其中class的信息,输入??graph后出现一个graph::graph-class。
- ls("package:mypackage"):查看"mypackage"中的所有对象。