R的极客理想——高级开发篇

这篇是计算机类的优质预售推荐>>>>《R的极客理想——高级开发篇》

资深R语言用户多年实战经验的结晶

编辑推荐

资深R语言用户多年实战经验的结晶,介绍R语言本身的核心技术以及R语言在不同领域的跨学科综合应用,借助每日中国天气的应用案例和游戏开发的案例,揭秘完整的R包开发流程,帮助读者创建自己的R包,打开R语言产品化的思路。

内容简介

本书的内容来自作者使用R语言的实践经验总结,以R语言的高级编程为主,辅以跨界知识的综合运用,涉及计算机、统计、数学、金融四个学科的知识。书中首先阐释如何用R语言实现数学计算和创建模型,涉及协同过滤算法、基于矩阵的PageRank算法、遗传算法和金融交易策略模型。其次详细介绍了R语言的环境空间、文件系统管理以及S3、S4、RC和R6四种面向对象的程序设计。最后介绍完整的R包开发流程,并提供每日中国天气的应用案例和游戏开发的案例,帮助读者创建自己的R包,打开R语言产品化的思路。

书中介绍了多个场景案例,不仅从学术的角度完成了模型设计,而且用计算机的方法实现产品。通过案例的学习,不同学科背景的R语言使用者可以站在别人的角度,找到新的思维方法。

本书适合所有R语言工作者,包括软件工程师、数据科学家、科研工作者以及相关专业的学生。

前言

为什么要写这本书

  本书是我写的“R的极客理想”系列丛书的第二本,主要介绍了R语言本身的核心技术、R语言的高级开发应用、R语言与其他学科及知识领域的跨学科综合应用。

  其实,早在我的第一本书《R的极客理想——工具篇》中,就已经介绍了R语言的30多个工具包的使用方法,并以IT人的角度,告诉读者如何高效地使用第三方R包,把原有IT知识运用到R语言的学习过程中。但由于一本书的篇幅有限,《R的极客理想——工具篇》只讲了如何使用R语言,没有讲原理。

  而本书将弥补这一遗憾,主要介绍R语言本身的核心技术:包括环境空间、面向对象、文件管理、数学计算、R包开发等主题。我希望通过这本书,可以让读者更深入地了解R语言、掌握R语言的核心技术、理解R语言的第三方包的特性,甚至可以自己动手开发出属于自己风格的优秀R包。说不定,不久的将来我会因用到你开发出来的R包而省力不少。

  除此之外,本书的另一大亮点就是:R语言与其他学科知识在不同领域的跨学科综合应用。在书中,我将毫无保留地向读者展示:我是怎样将R语言与其他知识相结合,在不同领域让R大放异彩的。相信这部分内容会让很多读者眼前一亮,为之惊叹,原来R还可以这么玩儿!也希望这部分内容可以让大家有所启发,让各行业、各知识领域的朋友都可以接触R,运用R。时至今日,R语言已经不再是局限于科学家们使用的实验室语言,它已经具备了实际开发应用的能力,并且在挖掘数据价值、发现数据规律、创造数据财富等方面极具智慧和创造性!

  如果把R语言比作一门武功,《R的极客理想——工具篇》就是兵器使用秘籍(比如什么“打狗棍法”啊、“独孤九剑”啊、“小李飞刀”啊),它可以帮助你在短时间内便捷、有效地提高工作效率,让你在R语言上的修为明显提高,但时间久了,你会因各种原因遇到自己的瓶颈,难以突破。

  而本书则是武功的内功心法(比如什么《九阳真经》、《北冥神功》之类的,敬请对号入座,但别拿《葵花宝典》说事儿,谢谢),书中不仅介绍了R语言本身的核心技术,帮你打通任督二脉;而且着重讲述了R语言在实际使用过程中,如何与其他学科、领域结合运用,融会贯通,以无招胜有招,甚至自立门派成为一代宗师,这些都是有可能的!(咳咳,扯远了!)

  在这里,我必须再次严肃地强调,本书不是R语言的入门书,零基础的朋友要先补充一些R语言的基础知识!本书包括R语言开发的高级内容,阅读本书,不但需要你有R语言使用经验,而且需要你具备一定的计算机背景知识和使用经验,只有这样,你才能更深刻地体会并运用书中的经验总结。

  本书的内容完全是我在R语言的实际使用过程中总结而成的,基本都是我在工作中使用R语言的真实记录,以R语言的高级开发为主,其中还涉及计算机、统计、数学和金融四个学科的知识。

  本书的核心内容包括两方面,一方面是R的高级编程,另一方面是跨界知识的综合运用。对于R的高级编程,本书详细总结了R语言的环境空间的定义和使用、文件系统管理、最新版本R 3.1.1的新特性,让你体会R语言的底层设计;全面介绍R语言中四种面向对象体系的程序设计和使用,通过面向对象的程序设计,让R语言有能力做出符合现实世界的复杂应用;另外还介绍了完整的R包开发流程,并提供每日中国天气的应用案例和游戏开发的案例,帮助读者创建自己的R包,打开R语言产品化的思路。

  对于跨界知识的综合运用,R语言不仅可以用来非常方便地进行那些让人头疼的数学计算,无论是初等数学或者高等数学,概率或者统计都可以非常轻松、方便的,从此数学变得不再神秘莫测、遥不可及。用R语言还可以创建各种模型,书中算法案例包括协同过滤算法模型、基于矩阵计算的PageRank模型、金融的交易策略模型和遗传算法的使用。几行代码几分钟,就可以让我们头脑中的想法变成可运行的算法原型。

  另外,虽然R不是特别适合开发游戏,但如果真用R语言开发游戏2048,也就需要200行代码,还有哪种语言可以匹敌呢?说到这里肯定有人问:“你为什么要用R开发游戏啊?”“为什么不用Java开发啊?”“我不用R开发,用Java开发不是也一样么?”其实,我就是想用这种方式向大家展示R语言简洁的风格、自由的思想、极富想象的创造力,希望用我这个“R极客”的玩耍心态,引发大家对R的无限想象!最后,我们把模型产品化,发布一个属于自己的R包,让全世界的人都能使用,这是一件多么令人兴奋的事情。

  在与各界R语言使用者的交流中,我发现,有编程背景的使用者可以写出干净漂亮且运行高效的代码,但由于欠缺统计知识,对模型优化就只能束手无策、无可奈何了;而那些具备统计背景的使用者,虽然可以独立完成一个模型的设计和优化,但对于如何产品化实施就完全找不到办法了。

  本书介绍了多个场景案例,不仅从学术的角度完成了模型的设计,而且用计算机的方法实现产品。通过案例的学习,不同学科背景的R语言使用者可以站在其他人的角度,找到新的思维方法。这是本书的又一大亮点!

  对于大多数程序员来说,学习R语言比较轻松容易,但运用R语言却非常困难。R语言虽然没有像C/C++一样的复杂程序语法,也不用像Java一样宏观考虑全局架构,更没有JavaScript一样灵活,但是,R语言面向数据本身的编程思想是完全有别于其他编程语言的,这就使得很多程序员在使用R语言时虽然理解语法,但依旧不知道如何应用。

  我认为,学习R语言是为了找到个性化的自己,定位自己,综合运用自身的知识进行跨学科创新,而不是去复制别人的想法。R语言的跨界运用,需要你具备基础学科(初等数学、高等数学、线性代数、概率论、统计学)+业务知识(金融、生物、互联网)+IT技术(R语法、R包、数据库、算法)的综合能力,所以只有提升自己的综合知识水平,才能真正地学好R语言。换句话说,一旦你学成R语言,你将是不可替代的。

  在此,我不得不再次强调,本书不是入门图书,而是R语言的高级开发图书。本书不讲R的入门语法,也不介绍R语言第三方包的使用。但是,如果你已经具备了一定的R语言基础,想把自己的R语言模型产品化,那么我将告诉你如何提高程序的可靠性和可扩展性,以及如何发布属于自己的R包。

  本书是“R的极客理想”系列图书的第二本,第三本《R的极客理想——量化投资篇》将介绍R语言在金融领域的应用,通过R语言构建交易模型,并实现自动化交易的过程,真正地让技术人员把自己的知识变成价值。

  本书的使用环境包括Linux Ubuntu和Windows 7两种操作系统,在每一节中都有明确的标识,所有的程序都是在R语言3.1.1版本中测试通过的。

  R语言还在不断地进步,它将引导一场数据的革命,跨学科的结合是时代趋势,也是我们的机遇!

.  读者对象

  本书适合以下所有R语言工作者:

  计算机背景的软件工程师;

  R语言的高级使用者;

  数据分析背景的数据科学家;

  统计背景的科研工作者;

  开设相关课程的院校学生。

  如何阅读本书

  本书的内容分为三个部分。第一部分是R的计算和算法应用(第1~2章),介绍了R语言的知识体系结构,R语言对基础学科的支持,以及通过基础学科实现各种算法,可帮助读者快速了解R语言中的数学计算方法和自定义模型算法开发。

  第二部分是深入R语言程序开发(第3~4章),介绍了R语言内核相关的编程,包括环境空间的定义和使用,以及面向对象方法的程序设计和使用,可帮助读者深入了解R语言的底层知识,用面向对象的方法设计复杂的程序结构。

  第三部分是开发自己的R包(第5~6章),介绍了R包开发的完整流程,并提供每日中国天气的应用案例和游戏开发的案例,可帮助读者创建自己的R包,打开R语言产品化的思路。

  本书有很多综合运用的知识,在阅读本书的时候,建议读者顺序阅读全部的章节。

  勘误和支持

  由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,笔者创建了一个在线的图书交流网站(http://onbook.me),方便与读者进行沟通。如果读者在阅读过程中遇到问题,也可以在官方网站中留言,我将尽量在线上为你提供最满意的解答。书中的全部源代码,都可以从华章公司网站(www.hzbook.com)或本书交流网站下载,我也会及时更新代码。如果你有什么宝贵意见,欢迎发送邮件至[email protected],期待能够得到你真挚的反馈。

  致谢

  感谢我的创业团队成员林伟林和林伟平,是R语言让我们走在了一起。感谢机械工业出版社华章公司的编辑明永玲,帮助我审阅全部章节,引导我顺利完成书稿。感谢我的爸爸、妈妈和爱人,感谢你们对我工作上的支持和生活上的照顾!

  谨以此书献给我最亲爱的家人以及众多R语言爱好者们!

  张丹

  2014年11月于中国北京

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 13:27:22

R的极客理想——高级开发篇的相关文章

极客Web前端开发资源大荟萃#002

每周极客都将总结本周最精彩的素材提供给大家,希望可以带给你更多地灵感和帮助!极客#GB课程库#现已上线,无论你是初级.中级.还是正在进修的高级前端工程师.这里都将帮助你得到更多更高效的学习. #GB课程库# 极客Web前端开发资源大荟萃#001 如何写出高性能的Jquery代码 讨论jQuery和javascript性能的文章并不罕见.然而,本文我计划总结一些速度方面的技巧和我本人的一些建议,来提升你的jQuery和javascript代码.好的代码会带来速度的提升.快速渲染和响应意味着更好的用

极客Web前端开发资源大荟萃

每周极客都将总结本周最精彩的素材提供给大家.希望能够带给你很多其它地灵感和帮助.极客#GB课程库#现已上线,不管你是0基础.中级.还是正在进修的高级前端project师.这里都将帮助你得到很多其它更高效的学习. #GB课程库# 极客Web前端开发资源大荟萃#001 怎样写出高性能的Jquery代码 讨论jQuery和javascript性能的文章并不罕见.然而,本文我计划总结一些速度方面的技巧和我本人的一些建议.来提升你的jQuery和javascript代码.好的代码会带来速度的提升.高速渲染

极客Web前端开发资源大荟萃#001

每周极客都将总结本周最精彩的素材提供给大家,希望可以带给你更多地灵感和帮助!极客#GB课程库#现已上线,无论你是初级.中级.还是正在进修的高级前端工程师.这里都将帮助你得到更多更高效的学习.原文:极客Web前端开发资源大荟萃#001 超棒的HTML5/CSS3单页面响应式模板(支持Bootstrap) 在线演示 使用Bootstrap实现的响应式单页面模板,包含移动和桌面两种效果. jQuery框架开发一个最简单的幻灯效果 在线演示 在这个课程中,我们将介绍如何使用jQuery来开发一个最简单的

极客Web前端开发资源大荟萃#007

本周我们带来的前端推荐包含当前热门的bootstrap,html5,css3等技术内容和新闻话题,如果你还想近一步学习如何开发,还可以关注我们的极客课程库,里面涵盖了现代开发技术的'学'与'习'的全新功能.希望对大家有所帮助!原文来自:极客标签 移动设备表单输入设计体验 - leader.js 为了帮助降低移动或者手机端输入的操作复杂度,leader.js提供了一个相对更简单的输入体验,你只需要输入表单内容回车即可完成输入,非常方便. Javascript游戏,街头霸王 有没有让你想起点什么?我

极客Web前端开发资源集锦

本周我们带来的前端推荐包含当前热门的bootstrap,html5,css3等技术内容和新闻话题,如果你还想近一步学习如何开发,还可以关注我们的极客课程库,里面涵盖了现代开发技术的'学'与'习'的全新功能.希望对大家有所帮助!原文来自:极客标签 移动设备表单输入设计体验 - leader.js 为了帮助降低移动或者手机端输入的操作复杂度,leader.js提供了一个相对更简单的输入体验,你只需要输入表单内容回车即可完成输入,非常方便. Javascript游戏,街头霸王 有没有让你想起点什么?我

极客Web前端开发资源大荟萃#22

本周,给大家总结了一些比较精彩的干货资源,点击橙色文字可以查看往期资源荟萃.本周的文章涉及的面比较广,内容也很丰富,大家可以收藏起来,然后慢慢学习-感谢大家对极客标签的支持,有任何意见或建议,都可以在评论区表达- 1.高效设计构建软件的十三条建议 非常全面的建议,值得参考- 大家在思路混乱的时候可以仔细阅读其中的内容哦,也许会让你的思路豁然开朗- 2. 程序员的电脑桌面是什么样的? 这是一篇桌面征集帖-想要了解程序员电脑桌面的,可以点进来看看哦,非常有意思- 3.幽灵按钮-极简主义的网站设计趋势

极客Web前端开发资源大荟萃#016

1. 为天津祈福 愿烛火能够给你们带来一丝温暖一丝光亮, 天佑天津,逝者安息,受难者尽快恢复,生者更有活力. 代码链接:http://www.gbtags.com/gb/rtreplayerpreview/1318.htm 2. 波纹特效测试 两个波纹轮状图形,重叠分开,很有意思的特效. 代码链接:http://www.gbtags.com/gb/rtreplayerpreview/1298.htm 3. 带有交互动画特效的webapp登录输入密码 一个比较有创意的登录页面,当你focus密码框

极客学院iOS开发工程师初级+中级+高级视频教程

下载地址:百度网盘下载 课程目录: 初级IOS开发工程师 19课程 7小时50分职业介绍1.iOS 开发的前世今生C语言基础 1.二级 C 流程控制 2.二级 C 函数与指针 3.二级 C 数组4.二级 C 字符串5.二级 C 作用域.预处理与存储 6.二级 C 结构体与共用体 7.二级 C 文件Swift语言基础1.Swift 语言基础2.Swift 中的字符串和集合 3.Swift 中的函数和闭包 4.Swift 面向对象基础(上)5.Swift 面向对象基础(中) 6.Swift 面向对象

10个极客Web前端开发jquery资源大荟萃

1.基于TweenMax.js的网页幻灯片 今天给大家带来一款基于TweenMax.js的网页幻灯片.这款幻灯片以不规则的碎片百叶窗的形式切换.切换效果非常漂亮. 在线演示 源码下载 2.pagePiling.js - 创建漂亮的全屏滚动效果 全屏滚动效果是最近非常流行的网页设计形式,带给用户良好的视觉和交互体验.pagePiling.js 这款 jQuery 插件可以帮助前端开发人员轻松实现这种效果. 在线演示 源码下载 3.使用 CSS3 伪元素实现立体的照片堆叠效 CSS3 里引入的伪元素