查看创建R包的各种细节,权威的文献是Writing R Extensions

1. 创建R包目录

像盖房子一样,创建R包需要先搭建一个骨架,这个骨架往往是固定的,即一些文件夹(如Rman等)和文件(如DESCRIPTIONNAMESPACE)是必须的,而另外一些则可选择性添加。一个典型的R包目录,比如Biobase包,如下图:

1. 一些S3的铺垫

在博文“Linux安装R语言包”描述了如何查看一个函数的源代码,其中涉及了例如methods()函数,用来查看一个S3泛函(S3 generic)的方法。在pryr包中,提供了更加便捷的查看方法。

pryr check objects and methods
1
2
3
4
5
6
7
library('pryr')

## object is base type, S3, S4 or RC
otype(obj)

## function is genetic or method
ftype(method)

持续更新R语言编程中的一些小技巧,包括一些易错点。 但是,需要注意的,一旦需要使用一些非常稀奇古怪的技巧时,可以尝试反思是否是自己数据结构或者算法出了问题。

1. if爱你,else就要和你在一起,又要给你一些距离

1
2
3
4
5
if (con){
  expr
  } else{
  expr2
  }

if...else..结构中,}else必须在同一行。

1. 安装ESS

有两种方法可以安装,一种是直接使用系统自带的包安装系统,比如yum

1
# yum install emacs-ess

但是,有时可能不是ESS最新版本。所以,推荐第二种方法,使用Emacs自带的包系统,方便、更新及时,设置方法参考,安装ess包。

2. 使用ESS

进入GNU Emacs界面之后,输入M-X R 即可进入R界面。在这个过程中,会询问是否在当前运行目录下运行R,可以选择在不同目录下运行。

  • M-x R
  1. 启动R。R运行的buffer因为是在Emacs编辑器下运行,所以称为inferior(Emacs文档中称之为iESS buffer)。

  2. C-u M-x R RET --no-save RET:启动R并且不保存。

  3. M-x ess-transcript-clean-region:清理R界面。

  4. C-c C-z:强制停止运行的R进程。

1. 安装

1
2
# 安装Emacs
# yum install emacs 

2. 窗口和文件操作

Emacs的按键操作,约定C代表Ctrl键,M代表Alt键,RET表示Enter键。C-x对应字符扩展,比如C-x C-b表示列出所有buffer;M-x对应命令扩展,比如M-x replace-string(可以用TAB补全)表示字符替换。

  • C-x 2C-x 3
  1. 将窗口分割成两个或者三个。

  2. C-x 1:只保留一个窗口。

  3. C-x n:开n个窗口