我发现写作这个事情也非常遵循楞次定律,上学期一旦开始了越写越停不下来,但是过春节停一段时间后,越不写越难以重新开始。整理了不少东西可以写作,但是每次都被懒癌打败,不知不觉又一个多月没更了。
本文是本学期第一篇,聊一聊什么是好的R包。这个问题源于年前一个同学,她在学习R语言,然后拿着一张总结的一些R包的图片问我:还有没有更好的包?当时就把我问蒙了,问她什么是更好的包?她说是新更新的或者被大家所公认的包。我说你发的图里面的都是啊。。。然后就结束了对话。
就是这张图
其实在她问我之前我从来也没想过什么算是“好”的包。一直以来都是需要什么功能,找到有这个功能的包就直接用了,因为我觉得虽然有不同的包可以做同样的事情,但是核心的计算结果肯定是相同的,差别也就在命令参数和结果展示的差异。就像之前两篇文章:
分析简单 & 出图优雅的R package —— factoMineR & factoextra
R-三种做PCA函数的差异:princomp,prcomp及rda
都是做PCA,R自带的stats包里包含princomp,prcomp;vegan包里有rda;factoMineR和factoextra这两个包也有分析和可视化的相应函数。
他们结果的微小差异来源于每个函数内部算法的微小差异,但是核心的思想相同,都可以放心的来做PCA。
当然也不是没有“不好”的R包。有关真正辣鸡的R包及抄袭别人R包发SCI文章毕业的事情,可以围观Y叔(公众号biobabble)的一系列文章。
那么什么是好的R包呢,对于我们这些只需要用R来做生信分析的人来说,如果功力没有那么深厚,看不懂R包的源代码,确实需要找到一些普遍都在使用且坚持更新的包,不仅仅不容易出错,而且网上这些包的学习资料也更多。计算多样性肯定避不开vegan,需要画图时强大的ggplot2完全可以满足需要。在实现某个功能的时候,一般网上搜索出来的也基本是大家都在用的R包。其实每个月生信类的杂志都会出很多新的R包的文章,但是大部分都没什么人用。能在网上留下痕迹的都是经过大家检验的。
对于R包在文献中的使用
6万多篇论文总共用到了2400个R程序包,其中也只有31个引用超过了100次。以这个标准来看,98.7%的炮灰率啊。。。
乱七八糟说了那么多,总结起来有以下几点:想要实现某种功能,需要科学上网,搜索别人之前造好的轮子,你能想到的大概率世界上已经有其他人做到了;多看包和函数的说明文档,里面有很多相关功能的其他函数及包的信息;有了一定基础后就可以自己造轮子,自给自足;多关注生信方法类的杂志,经常会有新包发布。
完