R环境搭建
下载安装
https://mirrors.tuna.tsinghua.edu.cn/CRAN/
RStudio下载安装
https://www.rstudio.com/products/rstudio/download/#download
R语言的数据结构
对象的5种基本类型
属性
资源
学习 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语言官方站
- R-blogger
- R语言资源汇总
- R语言搜索引擎
- R函数在线帮助
- 关于R的问答网站
- 一个入门级的R在线教程
- 交互式的R在线教程
- 统计之都
- 我的博客
- 美国计算机世界杂志提供的R语言初学者入门资料
- 各种cheatsheet
http://cran.r-project.org/doc/contrib/Short-refcard.pdf
http://www.rstudio.com/resources/cheatsheets/
视频资源
- Google Developers\' Intro to R
- Twotorials
- [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
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
3-1 构建子集的基本方法
构建子集
> x <- 1:10
> x[1]
[1] 1
> x[5]
[1] 5
> x[1:5]
[1] 1 2 3 4 5
> x[6:10]
[1] 6 7 8 9 10
> x[x>5]
[1] 6 7 8 9 10
> x>5 #判断真假
[1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
> x[x>5 & x<7]
[1] 6
> x[x<3|x>7]
[1] 1 2 8 9 10
> y<- 1:4
> y
[1] 1 2 3 4
> names(y) <- c("a","b","c","d")
> y
a b c d
1 2 3 4
> y[2]
b
2
> y["b"] #访问名字得到值
b
2
请发表评论