#学习 R 的方法

知识和耐心,是成为强者的唯一方法。

- 通过阅读来学习。
包括了阅读经典的教材、代码、论文、学习公开课。
- 通过牛人来学习。
包括同行的聚会、讨论、大牛的博客、微博、twitter、RSS。
- 通过练习来学习。
包括代码练习题、参加kaggle比赛、解决实际工作中的难题。
- 通过分享来学习。
包括自己写笔记、写博客、写书、翻译书,和同伴分享交流、培训新人。

#阅读清单#

一、初学入门:
《R in Action》
从统计角度入手,分高中低三部分由浅入深的讲解了如何用R来实现统计分析。

《The Art of_R Programming》
从程序编写的角度入手,对R的本身特点进行了清晰的介绍。

《learning R》
这本书没有单纯的讲语法,而是和数据分析的流程结合了起来,从数据获取到数据整理再到分析和报告,有一气呵成的感觉,此外最后两章讲如何写稳健的R代码以及写包都是非常精彩的。

二、统计进阶:
《A Handbook of Statistical Analyses_Using_R》
《Modern Applied Statistics With S》

这两本书基本上涵盖了统计的一些高阶内容,例如多元分析、多层回归模型、荟萃分析、生存分析等内容。案例丰富,公式不多,值得反复学习参考。

三、科学计算:
《Introduction to Scientific Programming and Simulation Using R》
《Mastering Scientific Computing with R》

除了统计分析外,独特之处在于使用R来做数值分析,如求根,最优化,数值积分。还包括了一些常见的模拟技术。书后的习题和最后的案例非常有用。

四、数据挖掘:
《Practical Data Science with R》
以R本身的扩展包和函数入手,很有体系的介绍了数据科学的各个方面。

《An Introduction to Statistical Learning》这本书可以说是另一本数据挖掘大作《The Elements of Statistical Learning》的R实现手册,体系结构基本一致,更强调用R来实现,更难得的地方是提供了很好的习题。

《Data Mining with R Learning with Case Studies》
《Machine Learning for Hackers》

两本侧重于数据挖掘的R书,全是以案例为线索,示范的代码量很大。跟一遍下来会有很大的收获。

《Data Mining explain using R》
用基本函数来实现各种机器学习算法,对理解算法底层很有帮助。

《Data Science in R》
以案例为主的书,需要一定的数据挖掘基础。

五、数据绘图:
《ggplot2 Elegant Graphics for Data Analysis》
ggplot2还有什么好说的呢,R中最优秀的绘图包,但由于近期该包升级很快,这书显得有些过时。好在中文版进行了大幅更新,即将面世。

《R Graphics Cookbook》这本书也是RStudio公司的人出的,似乎是Hadley的学生吧,主要是各种ggplot2包的例子,也包括了用其它包来画图,建议通读一遍。

六、参考手册:
《R Cookbook》
《R in a Nutshell》

有时候我们需要类似词典的案头参考手册,以方便随时查阅。又或者可以通读一遍以查漏补缺。上面两本书虽然有些厚度,但仍然推荐之。后者的中文版也在翻译状态。

七、高级编程:
《R Programming for Bioinformatics》
《software for data analysis programming with R》

如果你是初学者,不要去看上面两本书。如果你想进阶为专家级R用户,那你需要精读它们。前者讲解了R少为人知的一面,例如字符处理、正则表达和XML,还有报错处理以及与其它语言的交互。后者更是编写生产级代码的圣经指南。

《Advanced R programming》Hadley的力作,清楚的讲解了R的函数式编程思想和写R包的各种细节,要迈入R高手,不得不读。

李舰和肖凯的作品《数据科学中的R语言》(六月份出版)

#阅读建议#

- 在阅读时做笔记,以记下一些重点或心得
- 在阅读代码时,要在 R 环境中亲手键入代码并理解其意义
- 坚持练习,尝试利用身边的数据进行应用分析
- 理解扩展包和函数背后的原理(引用论文?glm)

#网络资源#

- [R语言官方站](http://www.r-project.org/)
- [R-blogger](http://www.r-bloggers.com/)
- [R语言资源汇总](https://github.com/qinwf/awesome-R)
- [R语言搜索引擎](http://www.rseek.org/)
- [R函数在线帮助](http://www.rdocumentation.org/)
- [关于R的问答网站](http://stackoverflow.com/questions/tagged/r)
- [一个入门级的R在线教程](http://tryr.codeschool.com/)
- [交互式的R在线教程](https://www.datacamp.com)
- [统计之都](http://cos.name/)
- [我的博客](http://xccds1977.blogspot.com)
- [美国计算机世界杂志提供的R语言初学者入门资料](http://www.computerworld.com/s/article/9239625/Beginner_s_guide_to_R_Introduction)
- 各种cheatsheet
http://cran.r-project.org/doc/contrib/Short-refcard.pdf
http://www.rstudio.com/resources/cheatsheets/

#视频资源#

- [Google Developers' Intro to R](http://www.youtube.com/watch?v=iffR3fWv4xw&list=PLOU2XLYxmsIK9qQfztXeybpHvru-TrqAP)
- [Twotorials](http://www.twotorials.com/)
- [Coursera]
-《真实数据分析师》之R语言系列(http://study.163.com/course/introduction/967017.htm )

#练习清单#

- Euler Project
https://projecteuler.net/

- kaggle
http://www.kaggle.com/

作者:肖凯

免费资源

以下就是我不花一分钱成为数据科学家的“独门秘籍”:

1. 理解数据:单纯的、没有任何背景的数据是没有意义的,也容易让人误解。数据需要有具体的背景才能说明问题。数据就像是一种颜色,需要有一个具体的外观才能证明它的存在。以红色为例,它需要一些具体的外观才能让我们看到,比如红色的汽车、红色的围巾、红色的领带、红色的鞋子或任何红色的东西。同理,数据也需要和它的环境、内容、模型、方法以及它产生、发生、使用、修改、执行和终止的整个生命周期结合在一起。

我还没发现一个数据科学家和我谈数据的时候不提及像Hadoop、NoSQL、Tableau的技术或其它老牌供应商与流行语。你需要与你的数据建立亲密的关系,你需要彻底地了解它。问他人“你的”数据为何出现异常就像是问自己的妻子怀了谁的孩子一样荒谬。我们在与联合国的合作以及确保学校远离爆炸的相关软件中具备一个独有的优势是:对底层数据的控制力。当全世界在使用统计图表讨论这些数据时,我们是那些回家体验数据的人,让它融入我们的日常生活,这些数据的价值、细节和增值,是我们不能在其它地方找到的。对于其它的项目和客户,我们也是同样对待的。

2. 理解数据科学家:不幸的是,“数据科学家”恰好是数据科学这个领域中最容易使人困惑和被误用的词之一。有人将其联想为知晓世间所有事情的神秘预言家;有人认为他们仅仅是统计学家;少数人认为他们只是一些熟悉Hadoop 和NoSQL的人;还有人认为他们就是一些会做简单测试或是在管理会议中使用很多晦涩难懂的数学和统计学术语的人。甚至于,某些人眼中的可视化控制面板,在另一些人看来只是永无止境的ETL(Extract-Transform-Load,数据仓库技术 )过程。在我看来,数据科学家是一类比数据创造者少一些对科学的理解,比数据生成者少一点对数据的理解的人,而他们恰恰是知道如何把这两部分工作融会贯通的人。一个好的数据科学家应该知道外部有哪些资源可用,应该和哪些人联系,应该雇佣什么样的人,以及采用什么样的技术可以完成工作;可以将商业目标和数据集市(data mart)连接起来,可以把每一个点,从商业利益到人类行为、从数据生成到付出的款项简单地联系在一起。

3. 观看Ted网站上的这13个视频

http://www.ted.com/playlists/56/making_sense_of_too_much_data

4. 观看Hans Rosling的视频,理解可视化的力量

http://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen

5. 收听PartiallyDerivative的关于数据科学的每周博客,查看博客中提供的一些有用资源

http://www.partiallyderivative.com/

http://www.partiallyderivative.com/resources/

6. 华盛顿大学的两个课程:

《数据科学入门》(Introto Data Science)和《数据分析计算》(Computing for data analysis)会是个好开头

7. 利用GitHub上的资源,要尽量多读

8. 浏览Measure for America网站(http://www.measureofamerica.org/),了解数据如何起作用

9. 阅读免费图书Field Guide to Data Sciences(http://www.boozallen.com/media/file/The-Field-Guide-to-Data-Science.pdf)

10. 努力完成“如何成为数据科学家”的信息图中的每一个步骤

11. 阅读博客“The DataCamp”(http://blog.datacamp.com/),提高R编程技术

12. 阅读博客“simplystats”(http://simplystatistics.org/),提高统计分析能力

13. 阅读Zipfian学院网站上一篇非常实用的文章“A Practical Intro to Data Science”(http://www.zipfianacademy.com/blog/post/46864003608/a-practical-intro-to-data-science)

14. 试着完成“The Open SourceData Science Masters”系列课程

http://datasciencemasters.org/

15. 学习Coursera网站创始人之一AndrewNg的机器学习课程

https://www.coursera.org/learn/machine-learning

16. 尽一切努力完成Coursera上的数据科学专项课程(DataScience Specialization),完成所有9门课以及核心项目

https://www.coursera.org/specializations/jhudatascience

17. 如果你缺乏计算机科学的背景或是想侧重于数据科学中的编程部分,请完成Coursera 上数据挖掘专项课程(Data Mining Specialization)

https://www.coursera.org/specializations/datamining

18. (可选项)根据你想从事的领域,可以参考下面这些专业相关的数据科学课程:医疗保健分析——入门和专项课程(healthcare analytics – intro and specialization), 教育(education), 性能优化(performanceoptimization)和一般学术研究(general academic research)

https://www.coursera.org/course/bigdataanalytics

https://www.coursera.org/specializations/medicaltech

https://www.open2study.com/courses/big-data-for-better-performance

http://www.liebertpub.com/big

19. 如果要了解数据科学应用的部署方面,Coursera上的“云计算”专项课程以及免费的AWS(Amazon Web Services)培训则是“必修课”

https://www.coursera.org/specializations/cloudcomputing

http://aws.amazon.com/training/intro_series/

20. 学习“海量数据挖掘”(MiningMassive Datasets)和“过程挖掘”(Process Mining)这两门顶尖课程

https://www.coursera.org/course/mmds

https://www.coursera.org/course/procmin

21. 27本最好的免费数据挖掘类书籍

http://www.dataonfocus.com/21-free-data-mining-books/

22. 每天阅读Data ScienceCentral,类似这样的文章可以让你在面试中节约很多时间。

23. 尽可能多在Kaggle上参与比赛项目

24. 如果还想更上一层楼,以下这些Coursera上的统计课程会让你脱颖而出:推论统计学(InferentialStatistics), 描述统计学(Descriptive Statistics),数据分析和统计学(Data Analysis and Statistics),Passion driven stats和MakingSense of Data

25. 关注预测分析领域大牛的Twitter:@mgualtieri,@analyticbridge, @doug_laney, @Hypatia_LeslieA, @hyounpark, @KDnuggets,@anilbatra

26. 关注大数据和数据科学领域大牛的Twitter:AlistairCroll, Alex Popescu, @rethinkdb, Amy Heineike, Anthony Goldbloom, Ben Lorica,@oreillymedia., Bill Hewitt, Carla Gentry CSPO, David Smith, David Feinleib,Derrick Harris, DJ Patil, Doug Laney - Edd Dumbill, Eric Kavanagh, Fern Halper,Gil Press, Gregory Piatetsky, Hilary Mason, Jake Porway, James Gingerich, JamesKobielus, Jeff Hammerbacher, Jeff Kelly, Jim Harris, Justin Lovell, Kevin Weil,Krish Krishnan, Manish Bhatt, Merv Adrian, Michael Driscoll, Monica Rogati,Neil Raden, Paul Philp, Peter Skomoroch, Philip (Flip) Kromer, Philip Russom,Paul Zikopoulos, Russell Jurney, Sid Probstein, Stewart Townsend, Todd Lipcon,Troy Sadkowsky, Vincent Granville, William McKnight, Yves Mulkers

这张表里的全部内容需要3-12个月的时间完成,但是完全免费。并且我保证你掌握这些技能后,工作机会就会滚滚而来。即使你只完成了一半,通知我一声,我也可以告诉你接下来该怎么办。现在就看你的了,无论你在哪里,能负担多少,如果你想拥有超过平均水平至少四倍的收入,这就是你接下来该做的事,至少是接下来这十年,这十年中每人每年将会产生20TB的数据,是过去十年的20倍。

我还会另外发表文章介绍数据科学方面的书(在过去的六个月里我读了127本书)和网络公开课(今天正在庆祝自己在MOOC上获得的第25个证书)。

对于其他人来说,数据科学是一个机遇,但对于我,是一种激情。我的tweeter账号:@ZeeshanUsmani

转载于http://blog.sciencenet.cn/blog-81613-930212.html

R语言(资源)的更多相关文章

  1. 大数据R语言简析

    R语言是用于统计分析.画图的语言和操作环境.R是属于GNU系统的一个自由.免费.源码开放的软件.它是一个用于统计计算和统计制图的优秀工具. R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支 ...

  2. 微软的R语言发行版本MRO及开发工具RTVS

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:微软在收购R语言的开发商后,也独立发行或在自己的产品中集成了R语言,这里就介绍下它们包 ...

  3. [R语言]R语言使用多线程对数据库进行大批量访问时出现无法连接问题

    问题描述: 在R中使用多线程对数据库进行写入,在服务器端运行脚本(linux环境),总是在第6-7万个任务线程时,出现无法连接到数据库的问题.任务中断,错误信息为task 6xxxx failed,C ...

  4. R语言解读多元线性回归模型

    转载:http://blog.fens.me/r-multi-linear-regression/ 前言 本文接上一篇R语言解读一元线性回归模型.在许多生活和工作的实际问题中,影响因变量的因素可能不止 ...

  5. R语言介绍

    R语言简介 R语言是一种为统计计算和图形显示而设计的语言环境,是贝尔实验室(Bell Laboratories)的Rick Becker.John Chambers和Allan Wilks开发的S语言 ...

  6. [R语言]foreach和doParallel包实现多个数据库同时查询

    R语言在进行数据库查询时,每执行一条语句,都会阻塞.直到查询语句返回结果之后,才会进行下一条语句. 为了能够实现同时对多个数据库进行查询,以节省顺序执行下来的时间,首先考虑通过多线程来进行数据库查询. ...

  7. 统计计算与R语言的资料汇总(截止2016年12月)

    本文在Creative Commons许可证下发布. 在fedora Linux上断断续续使用R语言过了9年后,发现R语言在国内用的人逐渐多了起来.由于工作原因,直到今年暑假一个赴京工作的机会与一位统 ...

  8. R语言-Knitr包的详细使用说明

    R语言-Knitr包的详细使用说明 by 扬眉剑 来自数盟[总舵] 群:321311420 1.相关资料 1:自动化报告-谢益辉 https://github.com/yihui/r-ninja/bl ...

  9. 能让你成为更优秀程序员的10个C语言资源

    能让你成为更优秀程序员的10个C语言资源 本文由 伯乐在线 - archychu 翻译自 mycplus.欢迎加入 技术翻译小组.转载请参见文章末尾处的要求. 一些人觉得编程无聊,一些人觉得它很好玩. ...

随机推荐

  1. (微信小程序)一 : 初识微信小程序

    首先看过angularjs的同学们在看微信小程序的创始文件应该不算很陌生吧. 需要看的 先是文件目录 看完这个目录..得知 ( 一 )    pages   他存放于多个页面 如 index ,log ...

  2. .NET世界的包管理器——Nuget

    NugetServer 使用指南 为什么要使用Nuget 在我们的项目, 存在着一些公共Dll, 这些Dll被大量的项目所引用.同时这些公共dll也同时在进行版本升级, 由于缺乏版本管理,这些Dll会 ...

  3. [Redis] redis在centos下安装测试

    下载软件,使用命令wget xxx,参数:url 例如: wget http://download.redis.io/releases/redis-3.0.0.tar.gz 解压缩,使用命令tar,参 ...

  4. 算法时间复杂度、空间复杂度(大O表示法)

    什么是算法? 计算机是人的大脑的延伸,它的存在主要是为了帮助我们解决问题. 而算法在计算机领域中就是为了解决问题而指定的一系列简单的指令集合.不同的算法需要不同的资源,例如:执行时间或消耗内存. 如果 ...

  5. 输出字符串中最长的单词 C# 算法

    要求: 设计一个算法从一片英语文章或者英语字符串里面输出其中最长的单词. Input: string     Output: string 尽可能多的设计测试用例来测试这个算法. 考虑空间和时间复杂度 ...

  6. 小tip:CSS vw让overflow:auto页面滚动条出现时不跳动——张鑫旭

    小tip:CSS vw让overflow:auto页面滚动条出现时不跳动 这篇文章发布于 2015年01月25日,星期日,23:08,归类于 css相关. 阅读 46274 次, 今日 91 次 by ...

  7. js实现字体闪烁

    function changeColor(){ var color="#f00|#0f0|#00f|#880|#808|#088|yellow|green|blue|gray"; ...

  8. mysql时间与字符串之间相互转换

    1.时间转字符串 DATE_FORMAT(日期,格式字符串) SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); 2.字符串转时间 STR_TO_DATE( ...

  9. js实现获取URL参数

    function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...

  10. 高性能JavaScript(高性能Ajax)

    ajax是一种与服务器通信而无需重载页面的方法(即局部刷新.) 高性能的Ajax应该考虑数据传输技术和数据格式,以及其他的如数据缓存等优化技术. 请求数据 请求数据的常用技术有XMLHttpReque ...