R 菜鸟入门篇 第00篇 缘起

如果你和当初的 dapeng 一样是个菜鸟,对 R 有浓厚的兴趣,只是苦于入不了门,在门口纠结徘徊不忍离去,那么,这个系列的帖子就是写给你的。

以前 dapeng 曾为两个难题烦恼不已,一个是谈恋爱,一个是学习 R 。两件事情的共同特点是:在它们面前 dapeng 一直是个菜鸟,任凭花费多少时间去读入门教材,什么 The R BookAn Introduction to RR for Beginners 等等,这扇门就是推不开。越推不开越想推。在dapeng修了大学里开设的 Introduction to R 课程之后,学习 R 的困境才有了改观。这门课程是拜罗伊特大学生态地理模拟研究组的 Björn Reineking 教授为全校公开开设的,链接点这里。一个学期下来,受益匪浅。课程结束后, dapeng 特意征求 Reineking 教授的同意把讲义分享给在中国的朋友,他欣然应允。于是 dapeng 打算公开之前整理一下,哪知道一整理,一晃两年过去了。

这两年间, R 助 dapeng 完成了博士研究期间全部的数据处理,论文中几乎所有的作图都是 R 实现的。可以说,如果没有学习 R 和使用 R 带来的乐趣,那么 dapeng 的博士研究生活必定会枯燥很多。然而,回顾学习 R 的历程,奇怪的是, dapeng 始终没有找到像 Reineking 教授课程那样菜鸟入门级的 R 教材。事实上,关于 R 的教材不是太少,而是太多,而即便是入门级的,那些标有 IntroductionBeginners 字样的,对于 dapeng 这种非统计学非计算机专业的,只在大学公选课修过 普通统计学 的人来说,还是门槛太高。如今快要毕业, dapeng 觉得,是时候把 Reineking 教授课程笔记梳理一下了,希望那些和 dapeng 一样的菜鸟们,碰巧读到这些文字后,学习 R 的情形有所不同。

那么,让我们开始第一个问题:R 是什么?

答案一搜一大堆。菜鸟 dapeng 的解释是,如果你用 Excel 计算过一列数的平均值,或者用 OriginLab 或 SigmaPlot 玩过科技制图,或者用 Matlab 编程建模,那么,R 跟它们一样,是用来进行数据处理、作图、编程的软件。

既然一样,别的软件用得好好的,干嘛要换用 R

跟很多理科生一样,dapeng曾用 Excel(本科论文)和 OriginLab (硕士论文),但博士期间换用了 R。见到好的,只要不违法不缺德,自然要换。

思考:你家附近的一家餐厅又贵又脏又难吃,但你不知道有别的餐厅,没选择的情况下习惯了这家。当你得知附近还有一家整洁便宜服务好的,你愿不愿意换?

那么, R 好在哪里?

这个就见仁见智了。 dapeng 是那种贪图便宜的人,看上 R 是看上了它的 免费随心所欲 。你说盗版的 Excel,OriginLab,Matlab 也免费?咳咳,dapeng 也是混过来的,只是如今年岁越大,胆子越小,违法的事儿还是少干吧,尤其是当了爹之后, dapeng 觉得,不想让孩子做的事儿,当爹的最好就别做。当然,不光免费和灵活,还有 R 功能的强大R 社区的 友好 等等,网上搜搜看吧。从 dapeng 的角度说,没有 R, dapeng 的博士研究可能完全是另外一个模样。 比如 dapeng 得意洋洋地炫耀一下下面这张 dapeng 博士论文中的插图,当然在 R 高手眼里也就是入门级的,但是 dapeng 却为此兴奋不已,因为用别人定义好的函数,一个语句不到一分钟就搞定了,太适合 dapeng 这种懒人。


图00.1. dapeng 的博士论文插图。对角线上是 7 个变量的直方图和平滑曲线,对角线以左是这 7 个变量两两之间的散点图和 loess 拟合曲线,对角线以右是两两之间的相关系数(正负用数字的颜色区别,相关程度用字体的大小表示)。

思考:上图用 Excel 或 OriginLab 或 SigmaPlot 该怎么做?

不光是论文作图,R 还能很容易做出 3D 动画来演示。下面是 dapeng 博士预答辩演示的一个图:


图00.2. R 做出的 3D 动画。

不光是枯燥的科技作图和演示,R 还可以娱乐。比如可以画一颗立体中国心:


图00.3. R做出的中国心。

当然可以很容易地把国旗换成别的,比如 mm 的照片,或者——


图00.4. 晴耕雨讀志在我心。

如果你开始对 R 有兴趣的话, R菜鸟入门 将循着 Reineking 教授讲义的思路,加上 dapeng 的学习心得,从零开始,大概用十几篇短文的篇幅带你跨上那个门槛,把那扇门推开一条缝 —— dapeng 希望自己能坚持写完。最后的目标——成为 R 高手,那是不可能的。不过,至少,能作出上面几个图来。

我们开始吧。

( 连载中,待续 )

R 菜鸟入门篇 第00篇 缘起》上有18条评论

  1. 土木坛子

    讲义呢?直接放出英文的不就行了吧?需要用这个的人都是懂英文的。官网还需要密码呢。你直接把它放在DROPBOX里吧,这样,每个人直接就复制到了自己的DROPBOX里了啊。

    回复
    1. dapeng 文章作者

      我这个是打算写给懒得读英文的菜鸟的。英文入门书很多,想读英文的就不用看我写这个了,呵呵。再说,讲义不经整理解释的话,看不懂,放出来了我就要为此负责。dropbox 被墙了吧好像。

      回复
  2. Yang

    刚自学了R一个月,为了尽早交稿,没有学用R画图,仅仅做了下方差分析。本来还想自己从超级超级零基础菜鸟的角度写个R入门基础呢,呵呵。
    推荐个网站 http://tryr.codeschool.com/ 本人自学的时候没用过,是后来发现的,适合零基础入门。
    PS 坛子也在,猿粪啊

    回复
    1. dapeng 文章作者

      有缘千里来相会,握手!你的域名起名的规律跟我是一样一样的啊。

      我写这个其实就是超级超级零基础……要不一起来写如何?

      谢谢你推荐的网站,非常棒,25 Recipes for Getting Started with R 就来自这个出版社,回头好好学习学习。

      回复
      1. Yang

        哈哈,我的名字太普遍了,所以就加了个地名。你写的挺好的,语言风趣,还有很多例子,我还是个菜鸟,就不掺和了。

        回复
        1. dapeng 文章作者

          我的也是,所以也加了个地名。

          写得仓促,如果有写错或写得不妥的地方,烦请毫不客气地指出来。

  3. Pingback引用通告: 勉强读完第一本关于R语言的小册子《25 Recipes for Getting Started with R》 | TangTian

    1. 大鹏 文章作者

      我是从OriginLab转到R的。我认为两者之间的差别,就好比Word跟LaTeX;或者好比萧峰跟扫地僧。

      回复
  4. hnndylf

    大鹏老师,我是你的同学袁老师的学生,你有没有关于GAM(广义相加模型)利用r软件的一些例子?谢谢

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax