R语言学习日记1——入门教材和视频推荐
学习R语言已经一个多月,不同的教材和网课都接触许多。花费了很多无用功在质量较差和不合适自己能力的教程上,在这记录下自己的学习心得。
通俗来讲,R语言的部分基本功能,EXCEL都能实现,且速度更快,这是由于EXCEL是图形化界面,对于新人和小白都非常友好,几次的实战就能解决大部分问题。
R语言的基本流程是:
1、读取记录好的数据表
2、对数据表进行数据清洗
3、定义各种变量、表格,根据需求转换它们
4、对变量和表格进行计算
5、输出图形
R语言基本界面
可以看到,以上的步骤基本可以通过EXCEL实现,若在R中实现,则要手打代码来一步步实现它们,那么有同学会问,那R语言的厉害之处在哪呢?我总结为以下几点:
1、能运行更大数据量
EXCEL存储10万条数据已是极限,如果你的电脑差点,你每次打开EXCEL都要等个半小时,输个函数又要等半小时,R语言则可以流畅快速的处理百万千万条数据
2、数据清洗更加专业硬核
EXCEL的数据清洗,更多是字数、错别字和错误数据方面的清洗,如果在统计中你的数据存在着问题值、空值等等,都会影响你的计算结果。
R有很好的追踪和检索功能,可以找出问题值,并根据你自己的需要修改问题值或者去掉问题值,用平均数代替也是操作方便。
3、对表格进行计算更加专业
R能够计算矩阵以及转换表格进行多表格计算(矩阵是线性代数的内容,R遵循线性代数的要求对矩阵进行计算),且不同变量之间的混合运算更方便,能存储在各种不同类型中,EXCEL在多种数据之间的混合计算会复杂麻烦。
4、输出图形优化更好
R有专门的图形输出函数,可以根据自己的需要优化图形,而且R的图形种类更全(箱型图、散点图、添加曲线等等都比EXCEL功能齐全)。
EXCEL的图形输出,需要自己通过其他软件进行进一步设计方能用于汇报使用。
5、R的语言真没那么难学
比起编程语言,你定义一个变量,还要声明他的类型等等各种。但R省去了很多步骤(你可以在后期自己修改类型),直接有一套内置体系运用。学习R的人很少是计算机出身的,大多是其他专业(医学、统计、金融等)来接触,真没用编程语言那么复杂,非常友好。但也基于这一点,R的语言并不算太严谨。
6、R的工具包齐全
这一点若是医学、金融的朋友们更加清楚,每当出现一种新的计算方法时候,R总有大神开发好新的包,你可以下载这些工具包直接使用。这是R的精髓之一,R是开源的、免费的,所有工具包都是大家共享的,你只需输几行代码即可直接下载,再根据文档学习使用即可,R的魅力在于此。
我在学习中,也遇到几个问题。在国内,R的教程缺少,社区也少,对于新手入门不算友好。
R在外国是热门语言,所以大多文章和方法都是英文,这对于英语不好的朋友们有点吃力,毕竟你直接用软件转译也难免在关键语句上出错。
在R的所有教程中,第一章都是教你如何获取R的帮助,遇到问题该怎么搜索问题,这很关键,因为大多数教程并不能给你直接解答具体问题,你需要自己搜索函数,了解函数的运用形式来对应使用。
我给出了几个国内质量较高的书本和视频,大家可以选择观看。
1、图灵程序设计丛书:学习R([美] Richard,Cotton 著,刘军 译)
这可以说是R的百科全书,里面记载了R的全部基本语法和相关操作,如果新人认认真真的把代码敲上一遍,R也算是入门了。当然,它也过于详细,很多不常用的语法也都说出来,同学们一定要根据自己需要明白哪些是重点,哪些仅需了解即可,我会在后面的文章中说明哪些是重要语法要掌握的。
R的精髓在于,你知道有这种函数和方法,你搜索和查询它来使用即可(不用记下那么多函数,忘了就去查呗,要善用搜索)。
同时由于翻译的问题,有部分语句会有点蒙,不过问题不大。(如果你英语OK,建议直接看英文原版)
2、R语言实战第2版 [R in Action:Data Analysis and]
目前已出第二版(很多人都说第一版更好),这本更适合有扎实的统计学知识的朋友们阅读,因为该书不从R语言的整体架构出发,而是基于数理统计来进行编写的,这应是一本有R基础、统计学基础的进阶读物。
3、Advanced R(英文原版)
左边是英文原版,右边是中文版,中文版翻译问题不大,但更推荐英文版。
这本很适合有R基础的同学进阶观看,他优化了R的视角,从另一个不同的视角去解读R语言,对于加深R语言的印象和使用是利器,推荐同学们阅读。
4、R语言基础课程 6讲(B站UP主xiuci)
在视频方面,我看过慕课网以及其他网站,讲的是一言难尽,对新人不友好,这算是目前中文版教程中比较友好且严谨入门的教程了,毕竟R的本体是英文,所以如果懂英文的朋友们可以去看外国视频,国内的可供参考的视频真没几个,我也是一直在啃书和项目。
在敲完一遍代码后,新人们都会有种错觉,就是我什么都会,各种统计分析我都会操作。然而在碰到实际问题时候,遇到数据不整齐、NA值问题,都会让你头疼,教科书上的都无法指导你。
于数据分析语言以及其他编程语言,学习的最佳路径是先了解最基本的概念和操作,然后就跟着去做项目(哪怕你是跟着别人的流程走),无论是工作可能需要的,还是纯粹自己感兴趣的。都会让你进步飞快,只关注工具而忽略数据分析思维本身,是致命的。
希望同学们在学习时候,不要陷入学习工具的怪圈,一定要学会基础操作,了解相关内容,然后找数据,找项目来做,来研究,才能进步飞快,切莫自己感动自己!