七步即可学会R语言,从此数据分析不再怕!
AI 研习社送书咯!
参与文章评论
社长将挑选当天点赞数量最多的用户
赠送《深度学习》一本
还有什么想看的 AI 资料 & 书籍
欢迎在评论区留言告诉社长!
本文特约作者为 DataCamp 的联合创始人 Martijn Theuwissen 。更多 R 语言资源请访问这里(http://t.cn/R9Uo2po) ,各种 R 语言源代码也在其中。
这里(http://t.cn/RZ0nGo0)还有一份数据科学备忘清单,能让你从零开始学习数据科学,包括 R 语言。
如果你没有编程经验,或者是对点击式的统计软件更熟悉(而非真正的编程语言), R 语言学起来还是有点难度的。本文的学习方法更适合 R 语言小白,不过老司机们也可以从中获得 R 语言的最新动态。
本文的学习方法是在追求实用性和全面性的不断平衡中建立起来的。这里有许多优质的 R 语言免费资源,但可惜并非全部。我们的资源相当丰富,包括相关文档、在线课程、图书以及更多能让你尽快入门 R 语言的最佳学习资料。
R 语言生成的数据视频:获取链接和观看视频请前往下方链接:
http://www.analyticbridge.com/video/from-chaos-to-cluster-part-2
http://www.analyticbridge.com/profiles/blogs/shooting-stars
下面是本文提纲:
步骤 0:为什么要学习 R 语言
步骤 1:软件设置
步骤 2:理解 R 语言语法
步骤 3:R 语言的核心 ->packages
步骤 4:帮助?!
步骤 5:数据分析工作流程
5.1 导入数据
5.2 数据操作
5.3 数据可视化
5.4 统计学部分
5.5 报告你的结果
步骤 6:成为 R 语言大牛,发现新大陆
步骤 0:为什么要学习 R 语言
R 语言正迅速成为数据科学的通用语言。它源于学界,但今天你会在越来越多的商业环境中看到 R 语言的身影,它现在成了商业软件公司如 SAS,STATA 和 SPSS 的贡献者。
R 语言的人气每年都在增加,在 2015 年被 IEEE 列入 2015 年十大语言。这表明人们对 R 语言知识的需求在增长,因此学习 R 语言绝对是一项明智的职业投资(根据这项调查 R 语言编程甚至是报酬最高的技能)。
甲骨文(Oracle )、微软(Microsoft )等行业巨头都在逐步加大对 R 语言的产品投入,这种投入在未来几年还会持续增长。
不过,金钱不该是学习一门技术或是编程语言的唯一动力。幸运的是,R 语言能给你的不仅仅是一份薪水。当我们走进 R 语言时,会慢慢熟悉这个多元有趣的圈子。换句话说,R 语言在各种领域的任务中都能得到运用,比如金融、基因序列分析、房地产、付费广告等等,这些也推动了 R 语言的进一步发展。
日常生活中,你也会遇到各种 R 语言的案例和应用,它不仅让事情变得有趣,还能够帮你解决各种各样的问题。祝你玩得开心!
步骤 1:软件设置
真正开始用 R 语言之前,你需要下载一个安装包。R 语言一直在不断升级,自 1993 年问世以来已经发布了好几个不同的版本,它们的名字都很好玩,比如 “世界著名航天员” 和“ 木制圣诞树”。安装 R 语言非常简单,你可以从 Comprehensive R Archive Network(CRAN,https://cran.r-project.org/) 下载基于 Linux、 Mac 和 Windows 不同系统的二进制文件。
R 语言安装完成后,可以安装一个 R 语言的综合开发环境(尽管基本的 R 控制台也能工作)。两个比较完善的 IDE 是 RStudio(https://www.rstudio.com/) 和 Architec(http://www.openanalytics.eu/architect)。如果你更喜欢图形用户界面,还应该检查 R-commander(http://www.rcommander.com/)。
步骤 2:理解 R 语言语法
学习编程语言(比如,R 语言)和自然语言(比如,法语或西班牙语)的方法类似,都是在练中学,学中做。学习 R 语言最好的方式之一,就是通过下面的在线教程:
DataCamp 免费的 R 语言辅导入门课程和中级 R 语言编程课程。你可以根据自己的节奏,在你的浏览器上交互式学习 R 语言编程和数据科学。
swril 软件包有离线互动的 R 语言编码练习。还有一个不需要安装的在线版本。
在 edX 上你也可以学习微软提供的 R 语言编程入门(Introduction to R Programming )这门课。
在 Coursera 上约翰霍普金斯大学的 R 编程课程( R Programming course )。
除了这些网络教程,还有一些非常好的入门书籍和书面教程:
Jared Lander 的人人都能用的 R 语言( R for Everyone,http://www.jaredlander.com/r-for-everyone/)。
Robert Kabacoff 的 R 语言实战( R in Action,https://www.manning.com/books/r-in-action)。
CRAN 的免费 R 语言入门手册(https://cran.r-project.org/doc/manuals/R-intro.pdf)。
步骤 3:R 语言的核心 - >packages
每个 R 语言包只是一组用于特定目的代码,旨在被其他开发人员重复使用。除了主代码库之外,程序包通常还包括数据、文档和测试。作为 R 语言的用户,可以轻松下载特定的软件包(有些甚至是预先安装好的),并开始使用其功能。每个人都可以开发 R 语言包,也可以与他人共享 R 语言包。
这是一个很强大的概念,也是 R 语言无论是作为一门语言,还是一个社区都非常成功的主要原因之一。也就是说,你不需要自己完成所有核心硬件的编程,也可以知道特定算法或可视化的每个复杂细节。相关软件包成为该功能的接口,你就可以轻松使用开箱即用的功能。所以,了解 R 语言包的生态系统还是挺有用的。
许多 R 语言软件包可从 Comprehensive R Archive Network(CRAN,https://cran.r-project.org/) 获得,您可以使用 install.packages function 函数进行安装。CRAN 的厉害之处在于它可以通过任务视图 Task Views 将包与特定任务联系在一起。或者,你可以在 bioconductor, github 和 bitbucket 上找到 R 语言包。
如果你正在找特定包和相关文档,可以试试 Rdocumentation(http://www.rdocumentation.org/),在这里可以非常方便地搜索到 CRAN,github 和 bioconductor 的软件包。
步骤 4:帮助
很快你会发现,每解决一个 R 语言问题,就会出现五个新的问题。但还好,有很多可以解决的办法:
在 R 语言内,您可以使用内置的帮助系统。例如,“?plot” 命令会提供绘图功能的文档。
R 语言强调文档的重要性。前面提到的 Rdocumentation(http://www.rdocumentation.org/) 就是一个不错的网站,可以查看不同软件包和功能的不同文档。
Stack Overflow(http://stackoverflow.com/questions/tagged/r) 是一个非常好的资源,它可以找到常见的 R 语言问题答案或向自己提问的答案。
网络上有许多关于 R 语言的博客和帖子,比如 KDnuggets(http://www.kdnuggets.com/) 和 R-bloggers(http://www.r-bloggers.com/)。
步骤 5:数据分析工作流程
一旦了解了 R 语言的语法、软件包生态系统以及获得帮助的方式,就可以开始关注 R 语言如何在数据分析工作中解决日常任务。
5.1 导入数据
在开始执行数据分析之前,首先需要将数据输入到 R 语言中。容易的是你可以把各种数据格式导入到 R 语言中,但难的是不同的类型往往需要不同的方法:
Flat files:您可以从预先安装的 utils 包导入带有 read.table() 和 read.csv()等功能的平面文件。导入平面文件数据的特定 R 语言包是 data.table 包的 readr 和 fread()函数。
你可以用 readxl package, gdata package 和 XLConnectt 把 excel 文档导入 R 语言。(Read more on importing your excel files into R,http://blog.datacamp.com/r-tutorial-read-excel-into-r/)
haven package 可以将 SAS,STATA 和 SPSS 数据文件导入 R 语言中。外部包可以导入 Systat 和 Weka 格式。
连接特定的软件包(如 RMySQL,RpostgreSQL 和 ROracle 软件包)与数据库。通过 DBI 访问和操作数据库。
抓取网页,可以使用 rvest 等包。 (有关 R 语言的更多信息,请查看 the blog of Rolf Fredheim 的博客,http://blog.rolffredheim.com/2014/02/web-scraping-basics.html。)
想了解更多如何将数据导入 R 语言的信息,请查看 online Importing Data into R tutorial(http://t.cn/R9UiRBq) 和 this post on data importing(http://blog.datacamp.com/r-data-import-tutorial/) 。
5.2 数据操作
使用 R 语言执行数据操作是一个很泛的主题,例如你可以在 RStudio 中使用 R 视频的 Data Wrangling with R 或使用 Data Manipulation with R。下面是在执行数据操作时,应该获取的 R 语言软件包列表:
tidyr 包:用于整理数据。
stringr 包:用于字符串操作。
处理数据框(如对象)时,最好熟悉 dplyr 软件包(try this course,http://t.cn/RwSrWIF)。如果大量数据明确任务,检查极速 data.table 软件包(请参阅此语法手册帮助)更有意义。
安装 lubridate 包时,运用时间和日期会更加容易些。
zoo, xts 和 quantmod 这样的软件包,则为 R 语言中的时间序列分析提供了极大的支持。
5.3 数据可视化
R 之所以成为数据分析师和科学家最中意的分析工具(没有之一),最重要的原因之一是它的数据可视化功能非常之强大。正如 FlowingData(https://flowingdata.com/) 上展示出的所有可视化内容,大量的美图都是用 R 来实现。R 画出来的图究竟有多美?咳咳,请参照这张著名的脸书图片:facebook visualization。
用 R 作出的信用卡诈骗分析图 --- 包含事件发生的时间、地点和损失额(查看资源,http://t.cn/R9U62yt)
如果你想用 R 做可视化,建议花点时间学习一下 ggplot2 软件包。它是 R 语言在画图制表方面最受欢迎的软件包。ggplot2 使用了图像语法的集约应用,所以很直观(你可以持续不断地建造图像的各个部分,就像玩乐高一样)。有很多软件包资源可供学习,比如,互动代码教程,是 Hadley Wickham 做的一个备忘清单和即将出版的新书。
除了 ggplot2,还有几种其他的软件包也可以帮你创造出更讨喜的图像,有很多优质学习资源帮助你快速掌握。我们精选出来了一些:
ggvis 用于互动网页图形(查看教程,http://t.cn/R9U6bRe)
googleVis(https://github.com/mages/googleVis) 用于谷歌图表的接口
基于 R 的 Plotly(https://plot.ly/r/)
如果你想获得更多可视化的软件包,请查看 CRAN 任务视图(http://t.cn/RKHR5Mn)。画图的时候碰到问题的话,这篇文章也许有用。除了那些 “传统” 图像,R 也可处理和可视化空间坐标数据。在静态地图上,可用 ggmap 这样的软件包让空间坐标数据和模型更直观,来源可以是谷歌地图开放街区地图。另一个推荐的软件包是由 Trulia 的 Ari Lamstein 开发的 choroplethr,或者 tmap 软件包。如果你想了解更多,请参看这个教程:Introduction to visualising spatial data in R(https://cran.r-project.org/doc/contrib/intro-spatial-rl.pdf)。
5.4 统计学部分
如果你是统计学的新手,下面有一些详实的资源解释了在使用 R 时需要的基本概念:
Andrew Conway’s Introduction to statistics with R 46 32632 46 15287 0 0 3318 0 0:00:09 0:00:04 0:00:05 3318 (在线互动编程课程,http://t.cn/R9U6SVJ)
Data Analysis and Statistical Inference 由杜克大学出品 (网上免费课程)
Practical Data Science With R (图书,http://t.cn/R9UX7GV)
Data Analysis for life sciences 哈佛大学出品 (网上免费课程,http://t.cn/RSekUes)
Data Science Specialization by Johns Hopkins 由 Johns Hopkins 出品 (还是那个免费课程,http://t.cn/RfA3ucG)
A Survival Guide to Data Science with R (图书,http://togaware.com/onepager/)
注意这些资源是针对新手入门的。如果想更进一步学习,可以看看用 R 来实现机器学习的各种资源。图书的话,有 Mastering Machine Learning with R(http://t.cn/R9UXVy1) 和 Machine Learning with R(http://t.cn/R9UXMcu) ,这两本书很好地解释了不同的概念。网上资源的话,有 Kaggle Machine Learning(http://t.cn/R9UXixi) 教程来实现不同的概念。
此外,还有些有趣的博客助你开启机器学习之门,比如 Machine Learning Mastery(http://t.cn/8Fmu6GH) 或者这个(http://t.cn/R9UXN2a)。
5.5 报告你的结果
不管是模型、可视化图像还是其他什么,最好的分享方式就是用动态文档。R Markdown(http://rmarkdown.rstudio.com/,以 knitr 和 pandoc 为基础的)是一个相当厉害的工具,它利用可重现的方式报告你的数据分析结果,并且可以存为各种形式的文档:html,word,pdf,ioslides 等等。这里有 R markdown 基础知识的四个说明教程:Reporting with R Markdown(http://t.cn/R9UXjdm)。在创建好自己的 markdown 文件之后,别忘了还有这张备忘单(http://t.cn/R9UXRAA)。
第六步:成为 R 语言大牛,发现新大陆
R 是一种快速发展的语言。其在学术和商业上受青睐的程度正在急速攀升,由此 R 的新功能和新工具软件包也在随之增加。下面罗列一些我们最喜欢的新技术和新软件包:
HTML widgets(http://www.htmlwidgets.org/) 帮你创建互动可视化网站,比如动态地图(leaflet,http://rstudio.github.io/leaflet/)、时间序列数据制图(dygraphs,http://rstudio.github.io/dygraphs/)和互动表格(DataTables,http://rstudio.github.io/DT/)。如果你自己创建一个,请参看由 RStudio 出品的教程(http://t.cn/R9UaRd5)。
最近,另外一个呼声很高的技术是 Shiny(http://shiny.rstudio.com/)。用 Shiny 你可以在 R 里面创建你自己的互动网站应用,比如这些(http://shiny.rstudio.com/gallery/)。网上有完整的学习门户,能专门建立自己的 Shiny 应用软件,在此处(http://shiny.rstudio.com/tutorial/)查看。
最近,越来越多人关注怎样在云程序中运行 R。如果你想做这项工作的话,不妨看看以下教程:running R on AWS(http://t.cn/RPEVPnv),R programming language for Azure(http://t.cn/R9USXO5) 和 RStudio Server on Digital Ocean(http://t.cn/R9USKpy)。
有了 R 的经验之后,Hadley Wickham 写的 Advanced R(免费书,http://adv-r.had.co.nz/)会让你的 R 技能更上一层楼。另外,也可以开始和 Kaggle (数据挖掘和预测模型评比的网络平台)上的数据科学爱好者们一起练习 R 技能。在那里你有机会接触有趣的数据,比如说,巨大的数据集(https://www.kaggle.com/c/titanic)。
看了这么多,你是不是已经开始准备动手写软件包了?玩得开心咯!
本期雷锋字幕组志愿者
雷锋字幕组志愿者 是一群有想法的大数据专家、程序员 / 工程师、产品经理、产品运营、IT 咨询人。
他们来自南卡罗来纳大学、早稻田大学、港大、清华、北大、中科院等海内外高校研究所及 IBM、AVL、Royal bank of canada、阿里巴巴等知名企业。
感谢志愿者们利用自己的业余时间,为我们翻译了这些精彩的视频。欢迎添加组长微信 jadelover11 加入字幕组。
新人福利
👏福利一: 关注 AI 研习社(okweiwu),回复 1 领取
【超过 1000G 神经网络/AI/大数据、教程、论文!】
👏福利二:本周内(截止至 7 月 30 日晚 24 点)
本公众号本周发布的所有文章
在文章底部留言评论,获得最多赞的社友,
社长将送出 花书(《深度学习》Ian Goodfellow)1 本
昨天的获奖同学是 萍儿
周一社长就会把奖品寄出!
话题讨论
你平时的碎片时间都用来干什么?
看小说?听歌?背单词?
欢迎在评论区交流讨论
↓↓↓
扫码关注
AI 研习社
点这个,阿法狗已成过去式,来看看 AI 领域的新突破!
▼▼▼