给R语言初学者的几个建议有哪些
这期内容当中小编将会给大家带来有关给R语言初学者的几个建议有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
最近有很多人在问我关于R语言学习入门的问题。
说实话,这个话题,如果由一个在数据科学领域叱咤多年、项目经验丰富,代码写的很溜的老司机来回答,结果会更有信服力。
而我并不适合来回答这个问题,理由如下:
首先我的学习周期很短,正式开始于2016年的9月份,算起来仅有10个月左右,有点速成的意味;
其次我在学习R语言之前并没有任何的编程基础(如果不算大学修过的SQL和自己只会一点儿皮毛的VBA的话);
第三我是一个文科生,没有很强大的数理基础和统计背景。
但是如果换一个角度来思考,我又觉得我很有资格来回答这个问题,理由如下:
作为一个文科编程小白和数学盲,我更懂和我一样编程零基础、数学又不好的初学者在初次接触R语言之时,内心的困惑和挣扎;
按照我的学习周期及其效果来看,我的学习效果得到了实战检验和诸多读者的认可;
我的R语言学习之旅是在大学校园里完成的,而非是在职场的强压下被逼无奈之下开始的,所以不带很多的功利性和企图速成的快节奏,同样也是按需去学,学的都是真把式和投入回报率最高的部分,所以对于基础的把握及学习的节奏的经验更值得大家借鉴。
下面我开始我的回答(biaoyan!!!)
关于学习初衷:
首先我想说的是,在打算学习R之前一定要先问自己一句,你学习R语言的目的是什么?
是大学专业课程的需要?或者提前储备自己的数据分析技能?还是为了应对职场压力,被动充电?亦或者仅仅一时心血来潮,看到如今的大数据发展的如火如荼、不由自主的来凑一波热闹?或者是纯粹只是为了兴趣、实现自己的某些想法。
因为目标定位不同,意味着你能为此打算花费的时间长度不同、付出的心血不同、学习的路径不同、学习学习的模块不同,达到的效果也不同。
一定要确定好目标,按需去学,否则你在入门之前就首先会陷入迷茫和困顿,因为R语言除了内置的几个基础包之外,CRAN上可用的有不下上万个扩展包,如果再算上GitHub上 托管的个人开发的小众包,可能有好几万了,掰着指头数一数,够学一辈子了。
关于对R语言的理解:
这里我讲一下自己对于R语言的理念,我不想重复那些已经被转播烂了的概念解释、发展历史、及其功能简介。
R语言是统计学家开发的,出生之初就决定了它的使命是统计计算和数据可视化,这算是R语言核心功能的两个大方向。
对于这两个方向而言,统计计算的学习,基础都在课堂理论与专业背景上,说实话,R语言只是提供了一个实现的平台而已,它并不该改变或者创造新的理论、模型。
而这些统计计算所使用的公式、用到的模型算法,大部分都被封装成一个个扩展包里,导入包之后,仅需调用对应函数、设置对应参数即可,这些函数与Excel里面的函数本无区别,无需恐惧。
至于参数的调优、模型的检验与优化,这些东西所依赖的知识背景,也基本都是来源于课堂学习和专业背景,与R软件的关系并不大,对于需要自己写算法的情况,你也仅是在函数的基础上按照成熟的理论算法进行调优和计算,这与软件无关(除了基础语法之外),而与软件之外的专业背景和行业经验有关。
说到底,对于统计学习这一块,重要的是理论背景、业务经验、而真正需要R来实现的,仅仅是内置的扩展包函数、基础语法而已。
类比一下SPSS的学习,一个不懂统计学的人很难学好SPSS,尽管他知道各种功能模块和菜单(比如我),同样,一个不懂统计学和数学的人也难学好R语言(统计计算模块),尽管他很熟悉R语言的基础语法和很多扩展包所能实现的功能(比如我)。
而对于R语言的数据可视化方向来讲,则稍有不同。数据可视化确实并不十分依赖数学(除了专门用于算法呈现的图形之外,很少有需要大量运算的),但是他高度依赖图形语法,依赖可视化视觉呈现理念。
R语言中被疯传有四套语法(分别是基础图形语法、高级图形语法、lattice语法、ggplot2语法)。但是遗憾的我只会其中之一——ggplot2。
我学东西的初衷很纯粹,要把一个东西做好,不是一般的好,而是要令效果赏心悦目、达到惊艳众人的目的,最重要的,要让老板赞不绝口(难道你不想升职加薪嘛)。
这就意味着我要学一套优雅、高效、兼容性强、更加贴近可视化理念的语法。因为我的精力和时间不容许我把付出的心血平摊在四条任务线上,毕竟我的多任务处理能力极差。
倘若贪多,这样造成的后果可能是,每一套都语法都能懂一些,但是每一套都表现平平,这是我不能容忍的。而ggplot2对我来说既是绝佳的选择。
即便如此,语法熟练或者说能够顺记于心就真的够了吗?当然不是,即便能能够熟记于心,也并不能保证自己能够游刃有余的实现自己的想法,因为数据可视化除了依赖实现的工具和平台语法之外,更多的是对于数据源的理解、对于可视化的理解、对于设计理念的融会贯通(怎么去配色、怎么去排版、怎么去搭配字体等)。
如果说软件的学习也遵循二八定律的话,我觉得,R语言的学习也是如此。
百分之八十的精力需要花费在软件之外的统计学理论背景、业务知识(可以自学呀),而需要使用R软件来实现的部分,不要干巴巴的去学(当然R语言的基础语法要牢固),理论搞透了很多事情就会水到渠成,迎刃而解了。这一点特别体现在对于统计与数据分析的学习上。
而数据可视化则需要你在牢固掌握基础上(基础语法运用、数据清洗技能),能够熟练运用一套图形语法(推荐ggplot2),然后不要过于将精力放在工具和代码本身,而是多积累可视化素养和提升设计审美水平。(这里我将数据可视化的二八定律稍稍修改一下,五五定律比较合适,因为ggplot2不是很好掌握)。
至于设计、审美、创意这些柔性的东西,很难去通过一两本书或者一两套课程搞定,这些是内化于生活,积累于日常的点点滴滴,当然如果有意识的去通过一些课程、书籍慢慢培养,日积月累也会见效的。
关于R语言学习技能路径:
通用技能学习:
基础:数据结构、变量类型、数据导入/导出、数据合并追加、长宽转换、数据索引、切片、聚合。
进阶:正则表达式、合并与分列、匹配与替换、缺失值插补、去重与排序,控制流:循环与判断。
专用技能学习:
统计与分析:去学课本吧
数据可视化:ggplot2语法+设计+审美+创意
基本上只要自己的通用技能学的差不多之后,就没有必要一直钻在这个小圈子里来回转了,可以自己去找数据做案例,案例是最好的学习,进步大多源于案例中解决未知问题的能力。
我没有读过很多R语言的书,所以这里还是不荐书了,如果你真的有心去学,还用别人荐书吗,看下豆瓣的图书榜就成了。
平时多用搜索引擎去解决临时性问题,基本上你遇到的问题,前人在网络上都已经给出了很详细的答案。
回答一些初学者的问题:
1、R语言是不是需要很深厚的编程基础,我编程基础基本为0,是不是不适合学这个?
我在学习R之前编程基础也为0的,有编程基础那叫程序员,程序员学习R语言都不用眨眼的~
2、学习R语言是不是需要很厉害的数学背景,我是文科生,数学超级差,是不是学不会啦!
握个手,我情况跟你一样,也是文科生,数学超级差,如果你打算往数据挖掘方向转型的话,可能需要补一下高数、线代、概率论统计与算法的东西,如果仅是作为业务分析工具、可视化之用,可能你的数学水平已经超越门槛了。
3、我R语言学了很长时间,好像也有一年了,看了很多书,所有的基础语法都会、ggplot2也都理解,但是就是自己写代码的时候写不出来,画图的时候干着急。
你是不是一直在看课本,一直在看,连练习代码都是copy课本上的,你做过多少实战案例,分析过多少真实业务数据、有多少新知识是在课本之外的实战过程中解决的,多看不如多练。
4、求地图模板!!!
抱歉,我不提供模板,我只提供代码和案例数据!(R语言很难做成模板)
5、你好,在吗,可以帮我画个图嘛~
……(我想说一句不在的)
6、可以推荐一下入门书吗?
其实我并不觉得R语言的入门需要入门书,因为我在入门阶段也没有照着书去学,但是既然大家提出来这个问题,我还是给些建议吧,如果你是在校学生,时间充裕,推荐《R语言实战》,不过一定要有选择性的去看,不要通篇看,前面几张关于数据结构、变量类型、数据清洗的要好好看(略过概念性和纯解释性内容),中间统计学习部分按需酌情去看,最后的文档报告输出部分谨慎去看(LaTeX和HTML你不一定能用得到的)。
数据可视化推荐两本吧,《R语言可视化手册》、《ggplot2:数据分析与图形艺术》(首选第一本,比较接地气,第二本虽然是作者本人大作,但是立意较为独特、高远、对初学者不是很友好)。
如果你是职场人士的话,那么并不十分推荐以课本为主,因为工作时间占用太多,不可能抽出大量时间用于练习,推荐工作之余利用碎片化时间听一些在线课程。(入门可以听免费的,天善智能社区就是很好地免费课程学习平台,我自己在天善智能也有开课哦,而且里面有大数据主题的多门免费课程,此外网易云课堂里也可以淘到很多好课)。免费课程用于入门,然后借助接触一线业务数据的机会,多把R语言用工作实践,你会进步的更快。
7、小魔方,你是如何学习R语言的,可以传授一些经验吗?
这个问题我太不好意思回答了,不过我还是舔着脸讲一下吧,我属于实战派,平时练习都是直接使用爬虫抓网络上的数据,实习的时候也是能用R的场合坚决不用Excel,逼着自己找R语言的使用场景,然后通过微信公众号、知乎专栏和个人博客进行持续性的内容输出(强迫自己去持续练习)。
当然,打捞基础很重要,否则只能每次写代码的时候都放着笔记本在身边,那里不会看哪里(很浪费时间的)
善用帮助文档,R语言中有强大的帮助系统,你可以直接进入扩展包的文档主页, 也可以使用?info来搜索某个函数的详细使用方法及参数设定规则。
保证规律性的练习,每天都要抽出固定时间来练习,具体安排视个人的具体情况。
最后给一句忠告,一门用于数据分析的编程语言,其只有用于数据分析实战才能发挥作用,就像老虎只有在森林里才能具备兽王的野性,所以一旦感觉自己掌握了基础之后,最后的进阶方式就是用于实战。
上述就是小编为大家分享的给R语言初学者的几个建议有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。