Advancedr_chapter01

Posted by rokia on March 13, 2017

AdvancedR研讨

rokia.org
2017-03-13


github地址

https://github.com/zhichaoluo/AdvancedR/blob/master/chapter01.Rmd

前言

感谢R语言社区,让我发现人世间居然有件兵器可以给自己终身修炼的动力,实乃人生幸事。AdvancedR就是我在练功过程中无意中发现的一本《易筋经》。爱不释手,字字珠玑。

市面上大部分有关R语言的书主要分为三类,一类是偏基础,一类偏概率统计(含数据挖掘、统计学习),另外一类是偏编程的。前面两类的汗牛充栋数量太大,就不推荐了。

  • 最后一类的首推Hadley Wickham写的这本《Advanced R》;

  • 第二本是John M. Chamber的 《Software for Data Analysis》,R 语言的前生S语言就是Chamber大大开发的,你说他的书能不看么?Chamber大大2016年新出的《ExtendingR》也是强烈推荐,书中详细介绍了R语言的底层技术,包括函数编程、面向对象编程以及扩展方面的内容,其中专门有一章介绍了R语言的前世今生。其实Chamber大大还有两本书非常有名,1988年的《The New S Language》(江湖人称the blue book),1991年的《Statistical Methods in S》(江湖人称the white book);

  • 第三本是Norman Matloff的《the Art of R programming》,Matloff教授拿到的是统计学博士却在计算机系教书,计算机功底杠杠的,看他的书,你会发现他不会放过任何一个角落来优化每一段代码。Matloff还擅长并行计算研究,他还出版了一本《Parrallel Computing for data science, with example in R, C++ and CUDA》

  • 第四本是Patrick Burns的《R Inferno》,教你如何绕坑而不掉进坑里。

  • 最权威R官方资料网站:http://cran.r-project.org/doc/manuals/

为什么只推荐偏编程的书呢?个人感觉,无论哪种软件都是你手中的一件兵器,无论哪种兵器,你只有熟练掌握它,它才能为你所用,学习R语言如果不将底层的编程弄明白,就像练功不懂内功心法,也就只有依葫芦画瓢,摆摆架势了。另外,底层编程熟练后,在此基础上将新研究的统计模型、方法应用在业务领域更是一马平川。(预告:下个研讨内容An Introduction to Statistical Learning: with Application in R)

一直很反感充斥在市面上的一堆什么七天学会xx功夫的书籍,其实也不能怪这些书籍,练功者自己内心急躁,急功近利,自然会选择这样的书籍,有了需求,自然就有了供给。现在的小孩估计不看武侠小说,只打网游。我现在仍然清晰记得小李飞刀李寻欢永不离手的那把破旧的雕刻刀,虽然破旧平凡,但在百晓生兵器谱中排名第三。

“小李飞刀,例不虚发。刀光一闪,小李飞刀已发出,刀已插入他的咽喉,他瞪大眼睛,至死也不相信,没有人看清小李飞刀是如何出手的!”

古人云,天将降大任,必先冻心忍性。让我们用一学期的时间来好好研读《Advanced R》,打造我们手中的“小李飞刀”。

目标读者

  • 想深入学习R并学习解决各种问题的新策略的中级R程序员

  • 正在学习R,并想知道R为什么这样工作的其他语言的程序员

可以学到什么?

  • 熟悉R的基础

  • 理解函数式编程

  • 掌握元编程

  • 性能优化

  • 理解大多数R代码

推荐阅读

  • 《The Structure and Interpretation of Computer Programs》(SICP) by Harold Abelson, Gerald Jay Sussman

  • 《Concepts, Techniques and Models of Computer Programming》 by Peter van Roy, Sef Haridi

  • 《The Pragmatic Programmer》by Andrew Hunt, David Thomas

获取帮助

  • http://stackoverflow.com

  • http://github.com/hadley/adv-r

  • 研讨组地址:http://github.com/zhichaoluo/AdvancedR

研讨组规则

  • 三人行,必有我师

  • 集体学习,集体讨论

  • 欢迎提问,没有问题就有问题

  • 必须参与练习,否则没有共鸣。

  • 三次没有提交作业自动退出研讨组