小邱童鞋眼尖,我刚往CRAN发了个R包没几天就被发现了。很久很久以前,source()函数是可以输出干净整齐的R代码的,但从某个R版本开始,这项功能被去掉了,让我感到很不爽,于是乎,研究了一下前一个版本的R源文件,悟出了整理代码的本质,于是操刀写了一个清理代码的函数;很久以前,小邱想出了一个聪明的办法,使得这个函数可以保留某些注释语句(以前这个函数只能去掉所有注释);几天前,我在看gWidgets包的同时,为这个函数写了个界面。一个新的R包formatR就诞生了。
很多人写R代码都不管代码是否整齐可读,也许是没有受够读代码的折磨:本来读别人的代码就是很痛苦的事情,如果代码写得不整齐,就更要命了。幸好R可以自己处理自己的代码,以R攻R,就可以得到自动整理的整齐代码了。
这个包的界面很简略,就是一个文本框加上若干按钮。以下是效果图:


感兴趣的客官可以从GitHub获得最新源代码自行编译安装,注意这个包依赖于gWidgetsRGtk2包。初级用户可以从CRAN安装(CRAN上的版本取决于我的提交,可能会有延迟):
## 启动R,然后
install.packages('formatR')
library(formatR)
## 将自动启动界面
第二个版本中加入了执行代码、字体设置以及其它选项。需要提醒的有两点:
- 这个代码清理功能只能保留整行的注释(也就是单独占一行的注释),行内注释会被删掉。
- 目前暂时还没搞清楚中文编码的问题,所以暂不支持中文,如果代码中有中文,将会被转换为乱码。有谁熟悉gWidgets的话可以帮帮我。
赞赏
作为一名没有固定工作的自由职业者,我非常感谢您通过捐赠的方式来支持我的写作和开源软件开发。当然,捐赠纯属自愿。无论金额多少,都是一片诚挚的心意。支付方式如下:
| 微信 | ← 奋力支开它俩 → | 支付宝 |
|---|---|---|
![]() |
其它爱心通道 ↓ Venmo: @yihui_xie Zelle: xie@yihui.name PayPal: xie@yihui.name |
![]() |
若使用 Venmo/Zelle/Paypal,请添加备注“gift”或“donation”,以免捐赠被视为我的可税收入。若使用 Paypal,支付类型请选 Family and Friends,而不要选 Goods and Services。
在不影响生活的前提下,我会将收到的捐赠以尽量大的比例回馈给开源社区和慈善机构。作为参考,2024-25 年间我共收到约三万美元捐赠,完税后我转手捐出了一万五千美元。

