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

本文特约作者为 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 (在线互动编程课程,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)。

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

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2017-07-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

大公司都有哪些开源项目之百度

百度分享的一些开源项目偏前端。https://github.com/fex-team/ ? 1.UEditor 编辑器 UEditor是由百度web前端研发部开...

3036
来自专栏腾讯移动品质中心TMQ的专栏

代码质量与技术债

我们可以通过各种类型的检测手段来给出其质量高低的度量。但是,如果直接拿出一段源代码放在我们面前,问这段代码的质量好坏时,我们又该如何作答呢?

6374
来自专栏小狼的世界

BLOG首页展示的几种方式

大约在多年以前,按照日志的时间格式进行排列的类似于编年史样的风格非常流行,但是最近,摘要形式的首页展示开始变得流行起来,还有一些其他的展现形式,我们的Blogg...

691
来自专栏数据派THU

独家 | 手把手教你学习R语言(附资源链接)

作者:NSS 翻译:杨金鸿 术语校对:韩海畴 全文校对:林亦霖 本文约3000字,建议阅读7分钟。 本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言...

2857
来自专栏媒矿工厂

MMSys2018:3DTI系统和360Video系统的异同点【附PPT全文】

2018年6月12号至6月15号,第9届ACM多媒体系统会议(MMSys,ACM Multimedia Systems Conference)在荷兰阿姆斯特丹召...

861
来自专栏阮一峰的网络日志

信息的组织和呈现

1. 信息的组织往往比信息本身更重要。就像奈斯比特说的,"信息有合作增强的作用,也就是整体的值大于部分的和"。 通俗的说,组织信息的目的就是要将相关的信息放在一...

29710
来自专栏GopherCoder

技术文档如何编写?

8795
来自专栏CSDN技术头条

Appboy基于MongoDB的数据密集型实践

【编者按】本文摘录自Appboy联合创始人兼CIO Jon Hyman在MongoDB World 2015上的演讲。Appboy正在过手机等新兴渠道尝试一种新...

2047
来自专栏程序员的知识天地

Python那么火,到底能用来做什么?

像Django和Flask这样基于Python的Web框架最近在web开发中变得非常流行。

921
来自专栏阮一峰的网络日志

关于Slashdot

slashdot.org创办于1997年,是一个著名的科技新闻网站。它的稿件都是由读者投稿,编辑审核后发表。但是,真正有趣的部分却是它的读者留言。

841

扫码关注云+社区

领取腾讯云代金券