1. R包介绍
R的包(package)通常有两种:
2. R包安装
2.1 源代码安装
1
# R CMD INSTALL /.../myPackage.tar.gz
使用此方法,需要解决包依赖问题,即安装此包所依赖的包,安装过程有提示。
2.2 内置install.packages()
函数安装
使用install.packages()
安装,比较简便,联网即可装,装了就可用。使用这种方法安装包时,R会自动安装依赖的包。如果出现安装报错,可能的原因是缺少依赖的系统文件。同时,需要注意的是,一些R包只能在特定的平台上使用。比如Rsubread 不能在Windows操作系统下使用。
1
install.packages( 'myPackage' )
同时,可以使用install.packages()
安装本地下载的包,尤其适用于在服务器上安装包
1
2
3
4
install.packages(
c ( 'XML_0.99-5.tar.gz' , '../../Interfaces/Perl/RSPerl_0.8-0.tar.gz' ),
repos = NULL ,
configure.args = c ( XML = '--with-xml-config=xml-config' , RSPerl = '--with-modules= "IO Fcntl"' ))
3. R包版本查询和更新
R和R包版本查询
1
2
3
4
5
6
7
8
# 在启动的R中执行
R.version
# R包版本
packageVersion( 'myPackage' )
# 查询当前R的详细信息,包括R版本、R包版本、命名空间等
sessionInfo()
CRAN 包更新
1
2
# 可以定期执行以下
update.packages()
Bioconductor 的安装和更新方法
1
2
source ( 'http://bioconductor.org/biocLite.R' )
biocLite( 'myPackage' )
4. 卸载R包
1
remove.packages( 'myPackage' )
5. R包相关函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看包的安装目录
. libPaths()
# 查看已经安装的包目录
library ()
# 查看已安装包信息
installed.packages()
# 载入myPackage包
library ( myPackage)
require ( myPackage)
# 查看当前载入的包
search ()
# 查看启动R时自动载入的包。
getOption ( 'defaultPackages' )
6. 帮助信息查询
6.1 R和R包帮助信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 查询R HOME安装地址
Sys.getenv ( 'R_HOME' )
# 查询用户HOME地址
Sys.getenv ( 'HOME' )
# 查看某个“函数”或者“方法”的详细内容
? myFunction
? myMethod
# 关键词查询
?? myKeyword
# 查看已经安装包的详细HTML文档
help.start()
# 搜索R网站上的“helpinfor”相关信息
RSiteSearch( 'helpinputinfor' )
# 查看“myPackage”的帮助
help( package = 'myPackage' )
# 有的包,特别是bioconductor的包有vignette,用函数查看
vignette( 'myPackage' )
# 这个函数也可以查看vignette,更好用一些
openVignette( 'myPackage' )
# 展示一些包中demostration
demo( 'package' )
6.2 查询对象信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 查看"myPackage"中的所有对象
ls ( 'package:myPackage' )
# 查看函数的参数
args ( myFunction)
# 自动运行该函数帮助文档中的例子
example( myFunction)
# 查看某个对象的模式(mode)
mode ( myObject)
# 查看某个对象的属性(attribute)
attributes ( myObject)
# 快速查看某个对象的信息
# 尤其适用于对象有很多行/列
str( myObject)
# 查看某个对象的类
class ( myObject)
# 查询某个中某个类的帮助信息,举例如下
class ? graph:: graph
# 查看某个S3泛型函数中所有的方法或者一个类中所有的方法(S3:S version 3)
methods( 'myMethods' )
# 查看S4类的方法
showMethods( class = 'myClass' )
# 查看某个类或者包的具体内容
getClass( 'class/package' )
# 查看某个类的slot
getSlots( 'class' )
# 查看某个对象的slot
slotNames( myObject)
# 访问对象的slot值使用@,可以连续用
Myobject@ slotNames
7. 查看函数源代码
7.1 普通函数源代码
直接输入函数名称,不加后面的括号。比如:
7.2 查询S3/S4函数源代码
因为如果使用了R的S3和S4方法,可能一个函数名称对应的多个不同的方法(对应不同的对象)。这时,采用的策略是:
查询函数对应的方法
查询具体方法对应的源代码
比如t.test
的源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
> t.test
function ( x, ... )
UseMethod ( "t.test" )
< bytecode: 0x244a248 >
< environment : namespace: stats>
# 查询S3对象的方法
> methods( 't.test' )
[ 1 ] t.test.default* t.test.formula*
Non- visible functions are asterisked
# 查看源代码,三种方法
> getAnywhere( 't.test.default' )
> getS3method( 't.test' , 'default' )
> stats::: t.test.default
另外一个例子,查询affy 包中pm()
的源代码:
1
2
3
4
5
6
7
8
9
10
11
> library ( affy)
> pm
standardGeneric for "pm" defined from package "affy"
function ( object, ... )
standardGeneric ( "pm" )
< environment : 0x4496f10 >
Methods may be defined for arguments: object
Use showMethods( "pm" ) for currently available ones.
> findMethods( 'pm' )
转自:http://yulongniu.bionutshell.org/blog/2010/09/04/linux-install-r/