渚碧

< 我欲种菜 亦植蔷薇 >

初学R语言

这两天突然心血来潮要学习R语言,起因其实非常可笑:在某个网站上看到新出的Stata 15破解版后,便想升级已装的14版,但事实上我极少使用这个软件,倒不如试一下免费开源的R语言,同时也可以减少破解软件的使用,可谓一举两得。

在这类统计软件中,我最早接触的是初级计量课上的Eviews,当时用来做时间序列的回归。但听同学说,Eviews处理时间序列还凑合,处理面板数据就不精确了。后来,在选修的中级计量课上,老师教的软件便是Stata了,但我理论听不懂,命令也记不住,课上了一半就放弃了。唯一还记得的是,老师在课上发给我们她从日本带回的糖果,但糖的味道也早已忘记了。在高级计量课上,老师曾让我们用Stata、R或Python模拟大数定理与中心极限定理,以此为契机,我也学了一段时间的Python,但并没有真正掌握。

我接触代码已经是很晚的事了,以前只是Stata的几行命令就让我头大,但在经过了一系列不怎么成功的学习后,我对代码已经不再发怵了,甚至可以说学起R来也算有点基础。在学R之前,难免要拿它与Python进行对比,甚至有这样的说法——偏统计的会选R,偏计算机的更喜欢Python。但正像那句网络流行语所说的,「小孩子才做选择题,大人当然是全都要了」,更重要的是,「love what you choose」。

之前上过一门大数据分析的课,当时在电脑上装了R,也装了RStudio,但我觉得RStudio不够漂亮,而且最终也没用到R,于是立刻就把它卸载了。虽然R教程都会强烈推荐安装RStudio,但我这次学习并没有选择它,而是用的Jupyter Notebook,我个人觉得挺好用的,这也符合我的一个原则,能用浏览器做到的事不会下载额外的应用。

毕竟接触的是一门新语言,我觉得R还是蛮有趣的,特别是用<-赋值(虽然打字时比=麻烦)、管道操作符%>%和Loop Function等。在学习了一些基础知识后,我又看了coursera上的R Programming课程,并尝试了R中的几个包,比如rvestggplot2twitteR等,不过都是浅尝辄止。

另一方面,随着接触的东西越多,越感到自己在数学、统计和编程方面的欠缺。我的数学一直很弱,应付高中考试尚可,面对高数就无能为力了。必选的两门微积分、概率论和线性代数只能混到比及格线高一点的分数,选修的应用随机过程能得高分则是全靠背题。对于统计学,我也只学过初级课程,且随着时间逐渐遗忘了。而提到编程,我则一直在入门的路上。因此,我能用R来做些什么,能不能做成,头脑中并没有清晰的思路。

当然,我学R也并没有功利的目的,只是觉得好玩而已,希望自己可以一直坚持下去。况且,R语言的世界里有Hadley Wickham这种不得不让人欣赏的人,也给这门语言增添了一份魅力。