formatR:格式化R代码的R包

谢益辉 2010-03-25

小邱童鞋眼尖,我刚往CRAN发了个R包没几天就被发现了。很久很久以前,source()函数是可以输出干净整齐的R代码的,但从某个R版本开始,这项功能被去掉了,让我感到很不爽,于是乎,研究了一下前一个版本的R源文件,悟出了整理代码的本质,于是操刀写了一个清理代码的函数;很久以前,小邱想出了一个聪明的办法,使得这个函数可以保留某些注释语句(以前这个函数只能去掉所有注释);几天前,我在看gWidgets包的同时,为这个函数写了个界面。一个新的R包formatR就诞生了。

很多人写R代码都不管代码是否整齐可读,也许是没有受够读代码的折磨:本来读别人的代码就是很痛苦的事情,如果代码写得不整齐,就更要命了。幸好R可以自己处理自己的代码,以R攻R,就可以得到自动整理的整齐代码了。

这个包的界面很简略,就是一个文本框加上若干按钮。以下是效果图:

R代码整容前

R代码整容后

感兴趣的客官可以从GitHub获得最新源代码自行编译安装,注意这个包依赖于gWidgetsRGtk2包。初级用户可以从CRAN安装(CRAN上的版本取决于我的提交,可能会有延迟):

## 启动R,然后
install.packages('formatR')
library(formatR)
## 将自动启动界面

第二个版本中加入了执行代码、字体设置以及其它选项。需要提醒的有两点:

  1. 这个代码清理功能只能保留整行的注释(也就是单独占一行的注释),行内注释会被删掉。
  2. 目前暂时还没搞清楚中文编码的问题,所以暂不支持中文,如果代码中有中文,将会被转换为乱码。有谁熟悉gWidgets的话可以帮帮我。