【译文】怎样学习R(上)

有奖转发活动

回复“抽奖”参与《2015年数据分析/数据挖掘工具大调查》有奖活动。

何品言翻译,广东科技学院大学生,喜欢R语言和数据科学。王陆勤审核,从事数据挖掘工作,专注机器学习研究与应用。英文链接:http://www.r-bloggers.com/how-to-learn-r-2/PPV课原创翻译文章,转载请注明以上信息及原文链接!

这里有无数的资源可以帮助你从不同的方面学R,然而对于初学者的你来说可能会觉得这样让你感到吃不消。而且R又是一门动态语言,它时刻都在变化,所以我们需要时常更新我们的工具以及技术到最新的版本。

这就是为什么R-bloggers和DataCamp合作要写一篇文章来给你怎样开始学习R提供可靠的建议。这篇文章中,每个部分都会介绍不同的并与这个部分相关的资源以及工具,它们可以帮助你入门R并帮助你保持持续的学习动力。这里的材料由文档、网络资源、书籍以及更多的资源混合而成。

就像R那样,学习路线图是一个动态的资源。我们想要持续的发展和改善这些资源而且尽可能的给您提供最好的学习路线图。如果你有什么建议的话,欢迎把你的反馈发到 tal.galili@gmail.com这个邮箱中。

学习路线

入门:R的基本知识

准备好你的机器

R包

把你的数据输入到R中

数据操作

数据可视化

R的数据科学和机器学习

报告相关结果

下一步

入门:R的基本知识

学习R最好的方法就是实践。如果你只是刚刚接触R,由DataCamp相关人员编写的 free introduction to R tutorial(R的免费入门教程)就是一本很好的教材以及后续要看的Intermediate R programming (R程序设计,里面提供相关脚本)。这些教材都教你如何进行R编程以及互动式学习数据科学,而且你可以按照你自己的方式学习和浏览相关信息。在你做学习过程中,一旦提出了你不懂的问题,你就能马上得到相关的提示,而且都很有用。

另一个R的网上互动式学习教材就是O’reilly代码学校网站,名叫Try R,你可以从这里获取相关资源。而比较好的一个线下学习资源是swirl,一个R包,能让你快乐学习并且可以在短时间内掌握R编程。你可以通过下载相关R包进行swirl的相关课程,同时可以从课程库中选择你需要的课程进行学习。如果你想在入门的时候不想下载任何东西,你也可以选择网络版的swirl课程。

在edX和Coursea这里也有一些很好的在线学习平台教你怎样学习R的基本知识。在edX你可以找一些微软的Introduction to R Programming(R编程导论),这是一门8小时的课程,它主要讲了R最基本的内容已经R的基本语法。在Coursea,你可以找一下 R Programming course by Johns Hopkins,这门课程很热捧。这两门课程都是重点推荐的。

推荐PPV课上面的R语言系列课程:R语言入门、R语言实战、机器学习与R语言实战,

如果你想通过阅读纸质版的教材来学习R或教程,这里也有很多的选择。这里有 introduction to R manual by CRAN(CRAN的R手册导论),同时还有Jared Lander写的R for everyone(每个人的R)或者Robert Kabacoff写的R in action(R语言实战)。

准备好你的机器

你可以从Comprehensive R archive Network(CRAN)那里下载R的安装包。这里有适合Windows、Linux和Mac的二进制安装包。

一旦完成安装R,你可以选择R的控制台环境,或者集成开发环境(IDE)。RStudio是目前为止R集成开发环境中最受欢迎的,同时还支持脚本的调试、工作空间的管理、作图和更多其它功能(你要检查一下你的RStudio菜单栏)。

接下来,RStudio也在R的集成开发环境中给你提供了相关的架构和开发工具。如果你希望能进行图形界面操作,你可以查阅一下R-commander或者Deducer

R包

R包是推动R的发展和规模扩大的动力,而R包则由一串代码、数据、文档以及易于分析到其它地方的测试组合而成。在你使用R包以前,你需要安装相关的R包。一些R包,诸如基本的R包,会在你安装R的时候自动帮你安装好的。其它的R包,如ggplot2这样的包,不会自动帮你装好,需要你手动安装它们。

很多的R包都已经在CRAN,一个其服务端遍布全世界各地,并且全世界是对R的代码和文档进行同步更新和储存的网络进行过整理并且可以从CRAN那里得到它们。你可以通过编写install.packages脚本轻松的从R内部下载这些包。CRAN也运行了一个任务预览集,它可以确认所有的R包都与其相对的特定任务的联系,就像时间序列那样。

你也有bioconductor,它提供了用于分析高流量的基因序列数的包;同样的,例如github和bitbucket库里的R包开发者。你可以通过使用devtools包轻松从这些库下载相关R包。

寻找R包是困难的,但幸运的是,你可以轻易的从CRAN,github和bioconductor(从R内部使用R文档)中下载相关R包,或者你可以查阅一下有用的R包这个快速列表。

最后,一旦你开始了进行R相关操作,你很快会发现R包之间的依赖关系会导致很多很头疼的问题。一旦面对这样的情况,确认一下packrat(查看录像课程)或者checkpoint。当你需要更新R包的时候,如果你用的是windows操作系统,你可以从installr包中使用updateR()函数。

对R进行数据导入

你可以在R中导入一下所有形式的数据文档:普通形式文件、统计软件文件、数据库和网络数据。

为了能把不同类型的数据导入到R中,你通常需要各种方法来实现它们。如果要学习在一般情况下怎样把各种类型的数据导入到R的话,你可以查阅一下online data Importing into R tutorial(在线把数据导入到R教材)这本教材,而这篇文章会提到RSstudio中的数据导入和相关网络研讨会。

  • 普通形式文件通常是以普通文件形式储存表数据,而R的标准分布提供了把这些普通文件导入到R的功能,其数据以数据框的形式展示,而其中有从utils包中提供像read.table()和read.csv()的函数。还有readr这样特殊的R包可以进行R的数据导入,这个包使用便捷,而且其冗余度比utils包低,同时性能上提速了几倍(尤其在包含更多信息的情况下;还有data.table的fread()函数可对R进行数据的导入以及数据的修改(使用fread函数)。
  • 如果你想把excel格式的数据文件导入到R,看一下readxl包是一个很好的方法。或者,你还可以使用gdata包,它有支持导入excel格式的数据文件的函数,再或者是XLConnect包。而后者则在Excel和R中起桥梁的作用,这说明你可以对Excel文件进行任何操作,但是你需要在R里进行这些操作。更多细节请查阅把Excel导入到R这篇文章中。
  • 诸如SAS、STATA和SPSS那样的软件包都会使用和产生它们各自格式的文件。Hadley Wickham写的haven包可以处理把SAS、STATA和SPSS格式的文件导入到R的问题,而且使用起来很简单。或者,这里有foreign包,它不仅可把SAS、STATA和SPSS格式的文件导入到R,而且还可以进行更多格式的文件导入到R中,如Systat和Weka。同时,也可以把数据以各种形式导出R(提示:如果你处在从用SAS、STATA和SPSS转到用R的阶段,你可以读一下Bob Muenchen的教材)。
  • 对于使用什么包来对相关的数据库进行连接和数据导入取决于你想连接哪种类型的数据库。假设你想要连接到MySQL数据库,你需要用RMySQL包。其它类型的就要使用其它的包如RpostgreSQL包和ROracle包。而R函数的话,你可以使用它们进行数据库的访问和相关操作,它在R包中被特别的称之为DBI。
  • 如果你想通过R进行网页数据抓取,你需要使用API连接到网络资源,或者通过使用rvest包进行相关操作。如果要开展所有的操作,这里有一个免费的网络资源,这里提供了Rolf Fredheim的博客文章

1、回复“数据分析师”查看数据分析师系列文章

2、回复“案例”查看大数据案例系列文章

3、回复“征信”查看相关征信的系列文章

4、回复“可视化”查看可视化专题系列文章

5、回复“SPPS”查看SPSS系列文章

6、回复“答案”查看hadoop面试题题目及答案

7、回复“爱情”查看大数据与爱情的故事

8、回复“笑话”查看大数据系列笑话

9、回复“大数据1、大数据2、大数据3、大数据4”查看大数据历史机遇连载

PPV课大数据ID: ppvke123 (长按可复制)

本公众号专注大数据和数据科学领域,分享领域知识和相关技术文章,探索大数据商业价值,培养和挖掘大数据专业人才,欢迎大家关注!

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2015-12-28

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木东居士的专栏

如何优雅地设计数据分层

本文主要讲解数据仓库的一个重要环节:如何设计数据分层! 其它关于数据仓库的内容可参考之前的文章。

1.4K60
来自专栏java一日一条

如何处理前任程序员留下的代码

作为软件工程师不可避免会遇到的一个场景是:我们在改变或添加一个功能到不是我们创建的、我们不熟悉的、与我们负责的系统部分无关的代码中时,会遇到麻烦。虽然这可能会是...

11620
来自专栏钱曙光的专栏

一周极客热文:从分析8000条软件工程师招聘信息所学到的

Aline Lerner 过去以编程谋生,现在从事招聘工程师的工作。去年,她通过参考全年的有效招聘数据编写了一篇文章,总结如下: 如果可以的话,尽可能让招聘信息...

23280
来自专栏FreeBuf

安卓耗电之谜:罪魁祸首竟是隐藏通信

简介 我们目前并不清楚为什么Android有这么多使用远程服务器进行隐藏通信的app,尤其是这些隐藏通信其实并没有被智能机主使用。我们知道app是从云端传入传出...

21390
来自专栏非著名程序员

有关 Android 应用桌面角标 (BadgeNumber) 实现的探讨

怎么在 Android 系统下让自家的应用图标像 iOS 系统那样支持数字角标的显示? 在网上找不到现成的解决方案的情况下,该如何去寻找问题的突破口? 一种简洁...

83670
来自专栏云计算D1net

影响云计算性能因素剖析

如今出现了很多基于云计算技术的各种云服务,可是如何去衡量一个云服务的好与差,并没有很清晰的标准。其实,对于云服务,一定程度上是由云计算技术的性能所决定的。说到性...

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

【探索式测试基础系列】初恋的味道

在学习探索式测试的过程中,也会有酸甜苦辣,只有了解它的人才知道这种味道。不妨和探索测试一起再回味一下初恋的味道。

1.6K100
来自专栏大数据和云计算技术

​大数据和云计算技术周报(第35期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

12920
来自专栏企鹅号快讯

最常用的几种编程语言讲解

我们来看一下编程语言的排行榜 ? 我们可以看到前五分别是Java,C,C++,C#,Python,我们就先讲一下这五种语言吧,让大家快速入门。 1.Java是一...

376100
来自专栏逸鹏说道

架构漫谈(八):从架构的角度看如何写好代码

在第六篇文章中,我们得出一个结论,软件架构实际上包括了:代码架构,以及承载代码运行的硬件部署架构。实际上,硬件部署架构最终还是由代码的架构来决定。因为代码架构不...

36280

扫码关注云+社区

领取腾讯云代金券