written on Nov 02, 13

关于R语言的一些感想

作为matlab的接班人,生物信息的顶梁柱,R语言基本上每个学期都被老师念叨“R语言很重要的,你们好好学。”或是“我们学院那个老师就是开发了一个R包而发了5点几的文章。”之类的。于是我准备当个好学生,假期自学个R in Action

这本书开始介绍R包,数据等的东西,然后开始。。。(°Д°图?变量?不应该是循环控制这类的吗?顿时感叹真不愧为matlab开源版,我只看到了函数,参数设置,函数,参数设置,函数,参数设置,然后一直到了pdf的结尾。去翻了翻中文版,高级数据管理(!!)里花了两页(!!)纸提到了数据控制,想来是pdf翻得太快跳过去了= =b。

到了老师布置R作业时间,我算是明白为什么循环之类的不怎么提了,太慢!特别是大点的文本处理,不用apply干用for的话基本上可以放在一边吃个饭了。运行着脚本的时候我在一旁用python实现,运行完,再去看R,终于一大半完成,接着等。记得有人说py速度是C的百分之一,看看传说中速度是C的六分之一的R。这篇比较了提升R循环速度的方法,最终最佳方式还是,交给底层的C吧!说来numpy底层也是C实现的。

其实R对生物信息最大的吸引还是说方便地别人调用的包(其他语言就不方便吗,pip、cpan这种我看着更舒服。)。说的就是包!被apt-get build-dep娇惯着没经历过传闻的依赖地狱,去装R包就足够了。目前R大概常见的是2.15、3.02这两个版本,然后,然后开始了。ubuntu自带2.14,装crlmm刚好符合,附带的包DBI不干表示要2.15,好我升级到3.02看你还有什么话说!animation表示3以上我不支持,好吧我就当你是py2.7不与py3兼容就行了吧。(R作业也不用动画了我画了只cowsay了事。)然后真正的家伙来了。生信同仁给的SNPMaP,它告诉我R语言版本不符合,那么用哪个版本呢?它不说,我翻了很久的网页就是找不到。不要以某傲娇的语气脑补真不愧是生物人开发的软件啊(╯‵□′)╯︵┴。─┴ (看看您老的域名是UK啊,不会像我天朝发个文章就不管事了吧。

另外说说R的赋值<-。刚开始也像装装,用着这种传说中的元老级写法,最后还是用着=省心,C-<,再按个-的话运动量太大。

记得老师说R是面向对象的,可是在那本有名的R in action 通本不提,不过还是有教程的,只是这个传说中的R实现OOP我实在是没看懂。(不过考虑OOP的会有人用R实现么=_=“。

似乎是是说R的作图技能一级棒,但我实在不觉得比matplotlib好到那去,调颜色到是方便点。其实说着那么好只是省了加包的麻烦吧!(因为R包加载实在麻烦:)

以上只是半调子R的感想。R比起MATLAB更像工具,却完全没有同样工具语言不分家的AWK的控制感。出了问题后的错误提示基本上没有什么指导意义,混杂的数据对象也完全不如py这种的明确。特别遇到文本还要用R处理的老师那就只能给跪了。

总结来说就是:真不愧是统计的人才们开发给统计人才用的啊! p364050904

Show Source
comments powered by Disqus