竞赛圈   > R的学习路径,从新手到专家的7个步骤

DC竞赛

  • 关注者 1
  • 关注了

DC竞赛

官方

如果你从来没有编程经验,也没有比较熟悉的统计软件,那么学习R可能会比较困难。这个学习路径主要针对新手。关于R有很多优秀资源,这里介绍的一些在线课程、书籍和更多让你尽快学会R。

纲要:

步骤1:你为什么要学习R

步骤2:安装

步骤3:了解R的语法

步骤4:R的核心 ->包

步骤5:帮助系统

步骤6:数据分析工作流程

6.1 导入数据

6.2 数据操作

6.3 数据可视化

6.4 统计部分

6.5 报告结果

步骤7:去发现令人兴奋的新东西

步骤1:你为什么要学习R

R迅速成为数据科学里的通用语言,你会发现在越来越多的商业环境和一些商业竞争软件如SAS,STATA和SPSS中使用R。

这意味着,对R的需求日益增长,而且掌握这个技能很容易获得高薪。通过学习R,你能熟悉一个高度多样化和有趣的社区,而且R在金融、基因组分析、房地产、广告、支付等不同领域都有不同的应用,这些领域都在促进R的发展,你会遇到各种例子,在每天基础工作上的应用,使工作变的更有趣,也会通过解决这些问题增加你的能力。

步骤2:安装

在你用R工作之前,首先下载安装在你的电脑上,登录http://cran.r-project.org/mirrors.html,选择离你最近的CRAN镜像站点,选择了镜像站点后,根据你所用的操作系统下载适当的版本。R有不同的版本,安装起来很简单,支持 Linux,Mac 和Windows 的系统。详细可参照https://cran.r-project.org/。

在安装R时,最好有一个集成开发环境,如果你喜欢一个图形用户界面,你应该看看r-commander。

步骤3:了解R的语法

学习一种编程语言的语法和学习一种自然语言没什么不同,通过练习。一个比较好的方式是通过下面这些教程。


Datacamp中对R的介绍教程和后续课程中的R编程。这些课程教你编程和数据科学的交互方式,以自己的节奏。

R 的交互包swirl包,也有一个在线版可用,不需要设置

在EDX上有微软推出的  Introductionto R Programming 

Coursera上有 R Programmingcourse by Johns Hopkins接下来还有一些非常好的入门书籍:

Jared Lander’s  R语言:实用数据分析和可视化技术 Rfor Everyone:Advanced Analytics and Graphics

R in Action by Robert Kabacoff

由DataCamp相关人员编写的free introduction to R tutorial(R的免费入门教程)

步骤4:R的核心 ->包

每一个R包是一个简单的代码包。除了基本的代码库,包通常包括数据、文档和测试。作为一个R的用户,你可以下载一个特定的包(有些甚至是预先安装)并开始使用它的功能。每个人都可以开发包,每个人都可以与他人分享他们的R包。

这是一个非常强大的概念,这个语言已经形成一个社区,你不需要做所有的核心规划,或者自己理解每一个特定算法和可视化的所有细节。只需要一个软件包,你就可以简单的使用。

许多软件包可以从Comprehensive R Archive Network这里下载,你可以通过install.packages function来安装下载。你还可以通过Bioconductor,GitHub和bitbucket来寻找一些特定的包。在Rdocumentation上你可以很容易的搜索CRAN,github和 bioconductor上面的包。

步骤5:帮助系统

你很可能会发现,当你解决了一个R的问题,又会出现5个新问题。这时候你就需要帮助系统来指导你。

在你可以使用其内置的帮助系统。例如,输入`?plot`将为您提供的绘图功能的文档。

R把一大重点放在文档。前面提到的rdocumentation就是一个能寻找到各种报和功能的文档的伟大网站。

Stack Overflowis 是一个很好的关于R的问答社区。

还有一些关于R的很好的博客例如KDnuggetsandR-bloggers.

步骤6:数据分析工作流程

当你了解上面这些之后,你就可以开始进行分析了。

6.1导入数据

你可以把各种数据格式都导入到R里,但是不同的类型需要不同的方法,这是一个难点。

文本文件:你可以从预安装工具包中使用read.table()。和read.csv()等功能导入文本文件。

Excel文件:可以通过readxl package, gdata package和XLConnectpackage. https://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r

SAS、STATA and SPSS数据可以用haven package导入,类似Systat 和Weka的数据格式可以用 foreignpackage导入。

和一些数据库相关联可以使用RMySQL, RpostgreSQL和the ROraclepackage.

 

如果你想了解更多关于如何将数据导入R的教程可以参照

https://www.datacamp.com/community/tutorials/r-data-import-tutorial

6.2数据操作

用tidyr包为整理你的数据

用stringr进行字符串操作

工作时的时间和日期的安装lubridate封装使其工作与这些更容易一点。

像zoo,xtsandquantmod这类包可以帮助你在中R进行时间序列分析

6.3 数据可视化

R语言作为数据分析和科学家们最喜欢的工具的原因是因为它的数据可视化能力。成千上万的基数通过R语言进行创造,就像 FlowingData所创造出的岗位一样,举个例子就是著名的facebook 的可视化:


如果你想开始与可视化研究,那就要花些时间研究ggplot2的软件包。其中一个有名的软件包就是研发的图形和图。ggplot2强调利用语法和图形,因此在使用时非常直观(你不断建立你的图的部分,这有点像玩乐高)。有大量资源可以帮助你, interactivecoding tutorial好比cheatsheet(一个mac的操作系统软件)和Hadley Wickham即将出版的书。

除了ggplot2以外,还有很多其他的软件包,可以创建高度互动的图形,还有很多很好的学习资源可以让你加快速度。

交互式Web图形ggvis

谷歌的图表界面googleVis

plotly R(在线数据分析制图工具- 小众软件)


如果你在数据绘图中遇到问题,这篇文章可能会对你有帮助。

https://www.datacamp.com/community/tutorials/15-questions-about-r-plots

接下来要说的就是“传统”的图形,R语言也可以处理可视化的空间数据。你可以很容易地可视化空间数据和模型上的来源,如谷歌地图和开放街道地图包,如ggmap静态地图。另一个很大的软件包choroplethr由阿里拉姆斯坦Trulia或TMAP开发。如果你想了解更多。

https://cran.r-project.org/doc/contrib/intro-spatial-rl.pdf

6.4统计部分

如果你是个统计学新手,当你在运用R语言的时候这里有一些非常可靠的资源可以帮助你理解

AndrewConway’s Introduction to statistics with R (online interactive codingcourse)

Data Analysis and StatisticalInference by Duke University (MOOC)

PracticalData Science With R (book)

DataAnalysis for life sciences by Harvard University (MOOC)

Data ScienceSpecialization by Johns Hopkins (MOOC)

ASurvival Guide to Data Science with R (book)

请注意,这些资源是针对初学者的。如果你想进一步深入学习,你可以看看关于机器学习R语言的复杂资源。书的话,比如《掌握机器学习》和《机器学习与R语言》就非常好地解释了不同的概念。还有一些网上资源,如Kaggle机器学习课程可以帮助你练习。此外还有一些非常有趣的博客例如MachineLearning Mastery 和this post.。

6.5 报告你的结果

分享你的模型的一个最好的方法是通过动态文档的可视化。R Markdown(基于knitr和Pandoc)是一个做数据分析报告的最好的方式,在HTML,Word,PDF,ioslides等渠道上都是可以进行重复进行的。

这里有关于R Markdown的教程,https://www.datacamp.com/courses/reporting-with-r-markdown?tap_a=5644-dce66f&tap_s=14201-e863d5

步骤7:现在去发现令人兴奋的新东西

R语言是一种快速进化的语言。学术界和企业界都在快速采用它,因此研发R语言新的功能和工具的速度正在迅速提升。这些新的技术和软件包才是使我们感到最兴奋的。

HTML控件允许你创建交互式的Web可视化等动态地图(传单),时间序列数据的图表(Dygraphs),互动表(数据表)。如果你想学习如何创建你自己的东西那就要通过RStudio看看这个教程。https://www.rstudio.com/resources/webinars/creating-javascript-data-visualizations-in-r/


最近另一种在市场上引起争议的技术是shiny。有了Shiny,你可以使你自己的交互式网络应用程序像这些一样,有一个完整的学习门户网站,还可以致力于建设自己的Shiny应用程序。

最近,有很多人将注意力集中于如何在云计算中应用R语言。如果你想自己独立完成这件事情,你可以看一下R语言是如何在AWS运用的,还有Azure(Azure是微软基于云计算的操作系统) 的R语言编程,以及RStudioServer on Digital Ocean

一旦你在R语言上有一些经验,提升你的R语言水平的一个很好的办法就是看看HadleyWickham的免费书Advanced R。此外,你还可以其他数据科学爱好者在Kaggle上竞赛来锻炼你的R语言水平。在这里,你有机会去操作一些有趣的案例,比如说泰坦尼克号数据集。

祝你成功!

1条评论

分享

1条评论
意见反馈
关注微信公众号 关注微信公众号

扫一扫分享给周围朋友