入门R语言
我前天开始系统地学习R语言,用的是一本叫做《R语言统计入门(第二版)》的书。那本书从最最基础的东西开始说起,基本可以说是零基础也能学会。我去说,书里面的内容是统计学和工科大一学生应该掌握的基本概念。现在我只看了一点点,感觉挺有趣,有些东西很容易理解,但有些东西却要绕一个弯。其实之所以这样,是因为R语言设置了很多潜规则。跟我之前学过的C语言不一样,R语言的潜规则多得多,也正是因为,它固有的规则多,所以有些东西毫不费劲就可以得出一个高端的结果。比如,当你要算一个数组的平均值,又或者是标准差的时候,一个简单到爆的函数就搞定了。如果要手工实现那个函数,真的很费神。我觉得R语言这个东西,只要你领会到规则的制定方法,很多东西都可以融会贯通。重点就是你能不能领会到那个精神,消化他们的东西成为自己的一部分。Excel的VBA里面也有很多潜规则,但是,跟R语言比起来,Excel里的很多东西貌似就有点复杂麻烦了,比如说,连起个名字,Excel里面的东西都要比R语言长。
我觉得对我来说,学习R语言跟学习Excel VBA,虽然都是编程语言,但二者不一样。VBA更侧重于技术实现的层面,要解决一些具体的东西,之所以要写VBA,不是要做研究,而是要得出某些结果,通过简单的操作就可以把复杂的流程秒杀搞定。其中的逻辑在写VBA程序的时候就必须已经想得很透彻。又或者可以这么说,在写VBA的时候,实际上你已经通过其它方式,得出了一个你要得到的结论。虽然你不可能所有数据都已经得有结论,但起码在某些数据上面,你已经确信那就是你想要的结果。大概因为我对R语言还了解得不够透彻,所以我觉得R语言最看重的不是结果本身,你不是为了要验证某个结果而去用R语言,而是要让R语言帮助你找到某些东西的规律。
之所以认会到R语言,是因为它有强大的绘图功能,几乎可以这么说,只有你想不到,没有它做不到的。R语言做出来的那些图,跟艺术家很写意地画出来的不一样,R语言做出来的图都是根据某些数据按照某些规则合并计算而来。有些数据摆在一起,我们不运行软件,也能预测到那估计是一个什么样的趋势。在一开始的时候,我们必须了解这个趋势,当R语言把图做出来的时候,我们才可以判定我们的方法有没有用错。当R语言我们已经用得很熟练的时候,我们可以要把我们的数据放到R语言里,然后通过某些我们已经应用成熟的方法让软件给我们得出图像,接着我们再从图像里得出某些结论。
不知道从什么时候开始,我迷上了数据可视化。把一堆数据用表格体现出来,和用图像表达出来效果很不一样。如果图做得好的话,那会给人一种惊艳的效果。如果你只看到一堆表,你的大脑还得寻找表格里数据的相关性,然后在脑子里想象出它们应有的关系。在靠谱的图里面,数据关系直截了当很明白,无论你是老手还是小朋友,在看图的时候,你都能很直观地感受到。
有时我会想,为什么现在理工科的学生仍然要学习C语言,而不直接学习R语言呢?尤其是那些非计算机专业的。理工科学生的课程里必然会遇到带入各种实验和数据分析。不过呢,大学的课程连Excel都不会很细致地讲明白,他们又怎么会把R语言放在眼里呢。
编程语言是种必需掌握的技能,谁是你的菜就得看这个社会推动的是哪种,又或者是你打算用在哪个领域了。