Linux安装R语言包

1. R包介绍

R的包(package)通常有两种:

  • 二进制代码包(Binary package):这种包属于即得即用型(ready-to-use),但是依赖与平台,比如Windows和Linux平台下不同。
  • 源代码包(Source package): 此类包可以跨平台使用,但用之前需要处理或者编译(compiled)。同时,源代码包可以查看到程序源代码,便于查找、修改和引用。

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. install.packages(
  2. c('XML_0.99-5.tar.gz', '../../Interfaces/Perl/RSPerl_0.8-0.tar.gz'),
  3. repos = NULL,
  4. configure.args = c(XML = '--with-xml-config=xml-config', RSPerl = '--with-modules= "IO Fcntl"'))

3. R包版本查询和更新

R和R包版本查询

  1. # 在启动的R中执行
  2. R.version
  3.  
  4. # R包版本
  5. packageVersion('myPackage')
  6.  
  7. # 查询当前R的详细信息,包括R版本、R包版本、命名空间等
  8. sessionInfo()

CRAN包更新

  1. # 可以定期执行以下
  2. update.packages()

Bioconductor的安装和更新方法

  1. source('http://bioconductor.org/biocLite.R')
  2. biocLite('myPackage')

4. 卸载R包

  1. remove.packages('myPackage')

5. R包相关函数

  1. # 查看包的安装目录
  2. .libPaths()
  3.  
  4. # 查看已经安装的包目录
  5. library()
  6.  
  7. # 查看已安装包信息
  8. installed.packages()
  9.  
  10. # 载入myPackage包
  11. library(myPackage)
  12. require(myPackage)
  13.  
  14. # 查看当前载入的包
  15. search()
  16.  
  17. # 查看启动R时自动载入的包。
  18. getOption('defaultPackages')

6. 帮助信息查询

6.1 R和R包帮助信息

  1. # 查询R HOME安装地址
  2. Sys.getenv('R_HOME')
  3.  
  4. # 查询用户HOME地址
  5. Sys.getenv('HOME')
  6.  
  7. # 查看某个“函数”或者“方法”的详细内容
  8. ?myFunction
  9. ?myMethod
  10.  
  11. # 关键词查询
  12. ??myKeyword
  13.  
  14. # 查看已经安装包的详细HTML文档
  15. help.start()
  16.  
  17. # 搜索R网站上的“helpinfor”相关信息
  18. RSiteSearch('helpinputinfor')
  19.  
  20. # 查看“myPackage”的帮助
  21. help(package = 'myPackage')
  22.  
  23. # 有的包,特别是bioconductor的包有vignette,用函数查看
  24. vignette('myPackage')
  25.  
  26. # 这个函数也可以查看vignette,更好用一些
  27. openVignette('myPackage')
  28.  
  29. # 展示一些包中demostration
  30. demo('package')

6.2 查询对象信息

  1. # 查看"myPackage"中的所有对象
  2. ls('package:myPackage')
  3.  
  4. # 查看函数的参数
  5. args(myFunction)
  6.  
  7. # 自动运行该函数帮助文档中的例子
  8. example(myFunction)
  9.  
  10. # 查看某个对象的模式(mode)
  11. mode(myObject)
  12.  
  13. # 查看某个对象的属性(attribute)
  14. attributes(myObject)
  15.  
  16. # 快速查看某个对象的信息
  17. # 尤其适用于对象有很多行/列
  18. str(myObject)
  19.  
  20. # 查看某个对象的类
  21. class(myObject)
  22.  
  23. # 查询某个中某个类的帮助信息,举例如下
  24. class?graph::graph
  25.  
  26. # 查看某个S3泛型函数中所有的方法或者一个类中所有的方法(S3:S version 3)
  27. methods('myMethods')
  28.  
  29. # 查看S4类的方法
  30. showMethods(class = 'myClass')
  31.  
  32. # 查看某个类或者包的具体内容
  33. getClass('class/package')
  34.  
  35. # 查看某个类的slot
  36. getSlots('class')
  37.  
  38. # 查看某个对象的slot
  39. slotNames(myObject)
  40.  
  41. # 访问对象的slot值使用@,可以连续用
  42. Myobject@slotNames

7. 查看函数源代码

7.1 普通函数源代码

直接输入函数名称,不加后面的括号。比如:

  1. fivenum

7.2 查询S3/S4函数源代码

因为如果使用了R的S3和S4方法,可能一个函数名称对应的多个不同的方法(对应不同的对象)。这时,采用的策略是:

  1. 查询函数对应的方法
  2. 查询具体方法对应的源代码

比如t.test的源代码

  1. > t.test
  2. function (x, ...)
  3. UseMethod("t.test")
  4. <bytecode: 0x244a248>
  5. <environment: namespace:stats>
  6.  
  7. # 查询S3对象的方法
  8. > methods('t.test')
  9. [1] t.test.default* t.test.formula*
  10.  
  11. Non-visible functions are asterisked
  12.  
  13.  
  14. # 查看源代码,三种方法
  15. > getAnywhere('t.test.default')
  16. > getS3method('t.test','default')
  17. > stats:::t.test.default

另外一个例子,查询affy包中pm()的源代码:

  1. > library(affy)
  2. > pm
  3. standardGeneric for "pm" defined from package "affy"
  4.  
  5. function (object, ...)
  6. standardGeneric("pm")
  7. <environment: 0x4496f10>
  8. Methods may be defined for arguments: object
  9. Use showMethods("pm") for currently available ones.
  10.  
  11. > findMethods('pm')

参考网址

发表评论

匿名网友

拖动滑块以完成验证
加载失败