本期推荐的书籍是hadley大神《R for Data Science》的中文翻译版《R数据科学》,Panda姐五星强烈推荐!!!
这本书原版就是开源的(网址:http://r4ds.had.co.nz/),但是中文看得更快,学R语言一定要买一本纸质书放在案头,多多翻阅。
R for Data Science
这本书将教我们如何用R来做数据科学:学习如何将自己的数据导入R中,把它变成最有用的结构,转换,可视化并对数据进行建模。在这本书中,我们会学习数据科学需要实用技能。就像化学家学习如何清洁试管和储存实验室一样,我们将学会如何清洁数据,绘制绘图——还有许多其他的东西。
这些技能使得数据科学得以发展,在这里我们可以用R找到最佳的解决方法,我们将学习如何使用图形语法、文字编程和可重复性研究来节省时间。还将学习如何在清洗整理、可视化和探索数据时管理认知资源。
数据科学的范围很大,不可能通过这么一本书就能掌握的。通过这本书我们能够为使用绝大部分重要数据科学分析流程打下坚实的基础。
很多数据科学分析流程大概就如下图:
第一步,导入数据(文本文件、数据库、网页API)。没有数据导入,就没有后续数据科学分析;
第二步,规整数据(每列都是变量,每行都是观测值)。规整好数据结构,让分析者关注数据问题本身;
第三步,转变数据。整理数据和转变数据合在一起叫做数据整形(wrangle);
第四步,可视化数据。好的可视化能够让我们挖掘数据中意想不到的的结果,让我们找到新的发现。同时也能够让我们检查猜想是否正确,指示我们去收集不同的数据。
第五步,数据建模。作为数据可视化的补充,一旦你想要更加地重分精确回答一个问题,这时候我们就需要用一个模型啦。建模是一个最基本的数学、计算机工具,应用十分广泛;
第六步,数据交流。无论你的数据可视化做得多好,模型建得多棒,最至关重要的是你对数据的理解后能够拿数据跟其他人交流。
上面的六个步骤都离不开编程。
数据科学家不需要态专业的编程技巧,但是学习一些基础的编程知识能够使得完成一些普通任务更加快速方便。学完这本书大概能掌握80%数据科学项目需要的技能,其余20%则需要依赖其他工具来完成(不会讲,但会给出学习资源)。
不讲大数据。data.table更适合处理大数据,更大则需要学Hadoop或者Spark了(sparklyr,rhipe,ddr);
不讲Python和Julia等其他编程语言。精通一门比所以东西都去学点好,这会让你更快解决你的问题,毕竟人的精力是有限的;
不讲非矩阵数据。图片、声音、树、文本文件暂不涉及;
不讲命题论证。数据挖掘分为两大阵营:假设提出和假设检验(有时称为验证性分析)。假设验证分析难,所以不讲,只讲数据探索和假设提出。一般认为模型用来假设检验,可视化用来假设提出,但这是错误的。模型也可以用来数据探索,并用可视化验证。反正两者的主要区别就是在于验证需要看一次,探索需要看很多次观察值;
有编程基础,没有就去Hands on Programming with R 看看再回来;
安装好R、Rstudio;
安装好必需包;
install.packages("tidyverse")
install.packages(c("nycflights13", "gapminder", "Lahman"))
学会解决问题。有问题先谷歌,不行再上stackoverflow(要学会科学提问),最后就是R社区RStudio blog和r-bloggers;
去年年底大致看完了hadley大神的《R for Data Science》:http://r4ds.had.co.nz/,前面三部分认真看了,后面模型和交流部分简单翻阅了下,我写了几篇简单的学习笔记:
在学习刚开始写了几篇笔记(做的很粗糙,都是摘录性的),从时间上看,大概看了三个星期左右。后面就没有继续写了,不太习惯做读书笔记,个人喜欢写那种带着问题的探索性笔记。
【R】《R for Data Science》学习笔记-先导篇:http://shemy.site/2017/11/19/R-for-Data-Science-introduction/
【R】《R for Data Science》学习笔记-数据探索篇:http://shemy.site/2017/11/23/R-for-Data-Science-data-explore/
【R】《R for Data Science》学习笔记-程序篇:http://shemy.site/2017/11/25/R-for-Data-Science-data-program/
【R】Project Euler通关打怪兽:http://shemy.site/2017/11/20/The-projecteuler-practice/
在先导篇是铺垫性的内容,为后面的数据探索篇、Wrangle(不懂中文啥意思)、程序篇、模型篇、交流篇做一个整体性的介绍。
在看完《R语言实战》后,这是我看的第二本关于R语言书籍,其他都是粗粗扫过,不算数(像R cook、ggplot2)。在这本书里,hadley大神写了很多用R做数据分析的技巧。下面我写下我体会最深的知识点:
数据类型认识更为深刻了,第一次把R中的向量、矩阵、数组、数据框、列表捣鼓明白,此外我还看了R语言教程和Advanced R。
高级数据整形包的学习:
使用tibble
来替代data.frame
;(优点很多,生成的数据框数据每列可以保持原来的数据格式,不会被强制性改变;查看数据时,像head()
时不再会一行显示不下,多行显示得非常丑;数据操作速度会更快了;)
dplyr
和tidyr
结合对数据进行tidy,超级有用的函数:选取部分数据filter()
、select()
、创造新的变量mutate()
、排序arrange()
、summarise()
和group_by()
结合使用来进行数据描述性统计;此外gather()
、spread()
、separate()
、unite()
用来高效对表格进行操作;还有就是left_join()
、full_join()
等关系型数据的合并函数,intersect()
、union()
、setdiff()
取数据的交并集函数都是第一次接触;
# √ ggplot2 2.2.1 √ purrr 0.2.4
# √ tibble 1.3.4 √ dplyr 0.7.4
# √ tidyr 0.7.2 √ stringr 1.2.0
# √ readr 1.1.1 √ forcats 0.2.0
用R处理数据的规范:要新建project,学会写注释,用pipeline%>%
写简洁的代码,函数的书写;
将数据整理好才能绘图,数据可视化作为数据挖掘的强有力工具;所以画图要有假设、目的性地画。
看完这本书后,在以后用R进行数据分析绘图会更加高效了,对数据整形、数据可视化在数据挖掘中的重要性有了深刻的认识,当然模型也很重要(我不是没认真看嘛)。对R的编程语法更加熟悉了,毕竟中间刷了12道编程题(代码惨不忍睹)。总之,对于R语言又有更新的认识,更上一层楼的感觉(R的学习曲线还是比较陡峭的,一些高手的技巧在一定阶段是看不懂的,需要跟着时间慢慢沉淀。不要灰心,俺觉得R还是挺好学的一门语言,比Perl好学)。
联系客服