9分钟写个R语言包:菜鸟致简速成

您所在的位置:网站首页 大佬的英语是什么怎么写的 9分钟写个R语言包:菜鸟致简速成

9分钟写个R语言包:菜鸟致简速成

2024-07-16 11:06| 来源: 网络整理| 查看: 265

心得

现在,让我们回过头来谈一个问题:我们为什么要写R包?

首先是方便自用。

使用R语言这几年,我逐渐积累的自定义函数越来越多,我把他们通通存到一个.R文件里。现在,这个文件已经有2000行,51个自定义函数(Update: 后来发现更多,我忘在另一个.R文件里了)。每次用时都source()一下,我觉得调用起来已经很方便了,虽然会导致RStudio右上窗Environment标签下特别冗长,而且经常忘记这些函数的用法,需要查看函数源代码,但总好过每次把函数重写或重拷贝一遍。没写成包之前,这几年都是这么过来的。

昨天,我花了半天时间,把它写成了我的第三个R包mf。这当然是个野包,纯属自用,自己懂就行了,我懒得为别人把这51个函数的说明文档从头到尾写一遍。用起来的爽快程度,当然比source()强多了,不仅Environment区清爽了,更关键的是,忘了的话就用tab和F1大法,几年积攒的不快一扫而空。就算换个工作单位,换台电脑,花几秒钟安装后照旧调用,处处无家处处家。

其次是改善代码。

写代码对我来说一直是件封闭的事情:自己写,自己用,一旦出错,只有自己知道。计算方法没有经过同行评议,出错的风险很大。但是我又不愿意厚着脸皮强迫别人帮我改代码。两全的办法,就是开源,写成包,放在Github上,接受志愿者挑错,有则改之无则加勉。只有这样,才能把代码错误越来越少,改得越来越好,最终还是自己用起来更爽。至于对别人和社区有没有贡献,我只盼自己没有添乱就行了。

最后是审视自我。

我的第一个R包postr是用R markdown做海报,兴致勃勃地放到Github第一天,就有人留言汇报问题。我知道,这只是个开始,以后会有更多的问题,里面会有赞美也会有谩骂。写出个R包真的不算啥,等待在前面的一个又一个的坑才是让人真正头疼的事情。

这个阶段就要接收考验了。你会重新审视自己:我这么干到底是图个啥?我自用已经够了,却要花大量的时间帮一些跟我八杆子都打不到的人解决他们五花八门层出不穷的问题,我闲得么?花的这工夫和精力,到底是能发表成学术论文呢,还是能变现呢,还是能替我洗碗带孩子呢,还是能帮我赚游戏装备?

开源软件是面镜子,让你从中看到自己。唐太宗说过:

以铜为鉴,可以正衣冠;

以人为鉴,可以知得失;

以史为鉴,可以知兴替:

以R包为鉴,可以知本我、自我和超我。

PS. 星期三下午,我壮着胆子把Emacs装上,战战兢兢试了一下就惊呆了。这个ctrl+coo快捷键(可以读作“control 酷”,太好记了)来维护R包简直不要太逆天。昨天我花了四五个小时来为我那51个函数写文档,要是用Emacs,估计最多一小时就够了。省事的话,可能不到10分钟就能写出个包含这51个函数的能用的致简包。最让我受刺激的还不是这个。自打学了vim之后,我就坚信,我永远用不着,也永远学不会Emacs,而实际上,学会上面这个办法,只用了三五分钟……Emacs我不打算学更多,光这一招就够酷……(Update: 根据 Yihui Xie的留言,RStudio 里 ctrl+shift+alt+r也能同样实现)

到底是什么阻挡了尝试新事物的可能?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3