专栏名称: AI数据派
THU数据派"基于清华,放眼世界",以扎实的理工功底闯荡“数据江湖”。发布全球大数据资讯,定期组织线下活动,分享前沿产业动态。了解清华大数据,敬请关注姐妹号“数据派THU”。
目录
相关文章推荐
中国能源报  ·  延长石油:突破2000万吨! ·  昨天  
中国能源报  ·  延长石油:突破2000万吨! ·  昨天  
中国能源报  ·  12.05亿个! ·  2 天前  
中国能源报  ·  12.05亿个! ·  2 天前  
中国能源报  ·  “中国有望领军下一代地热能技术应用” ·  2 天前  
中国能源报  ·  “中国有望领军下一代地热能技术应用” ·  2 天前  
南方能源观察  ·  电价暴涨续集:欧洲天然气供应不确定性增加 ·  3 天前  
南方能源观察  ·  动力电池退役潮将至,如何规范回收产业链? ·  5 天前  
51好读  ›  专栏  ›  AI数据派

七步即可学会R语言,从此数据分析不再怕!

AI数据派  · 公众号  ·  · 2017-08-02 07:30

正文

来源:AI研习社

本文长度为3977,建议阅读5分钟

本文为你介绍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 (在线互动编程课程,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)


步骤6:成为 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)


    看了这么多,你是不是已经开始准备动手写软件包了?玩得开心咯!


    编辑:文婧

    校对:王红玉

    为保证发文质量、树立口碑,数据派现设立“错别字基金”,鼓励读者积极纠错

    若您在阅读文章过程中发现任何错误,请在文末留言,或到后台反馈,经小编确认后,数据派将向检举读者发8.8元红包

    同一位读者指出同一篇文章多处错误,奖金不变。不同读者指出同一处错误,奖励第一位读者。

    感谢一直以来您的关注和支持,希望您能够监督数据派产出更加高质的内容。

推荐文章
中国能源报  ·  延长石油:突破2000万吨!
昨天
中国能源报  ·  延长石油:突破2000万吨!
昨天
中国能源报  ·  12.05亿个!
2 天前
中国能源报  ·  12.05亿个!
2 天前
班主任家园  ·  毁掉一个孩子,三个字足够了!
7 年前