作品简介

R的极客理想”系列图书以作者多年开发经验为素材,系统地梳理了R语言的知识。在《R的极客理想——工具篇》中介绍了R语言的30多个工具包的使用方法,并以IT人的视角,告诉读者如何高效地使用第三方R包。

《R的极客理想——高级开发篇》则以R语言的高级编程为主,辅以跨界知识的综合运用。书中首先阐释如何用R语言实现数学、统计计算以及模型建立,应用包括协同过滤算法、基于矩阵的PageRank算法、遗传算法和金融交易策略模型等。详细介绍了R语言的环境空间、文件系统管理、S3、S4、RC和R6四种面向对象的程序设计。还介绍完整的R包开发流程,并提供每日中国天气的应用案例和游戏开发的案例,帮助读者创建自己的R包,打开R语言产品化的思路。

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

《R的极客理想——量化投资篇》将介绍R语言在金融领域的应用,真正地让技术人员把自己的知识变成价值。

张丹,R语言资深用户,系统架构师,况客科技联合创始人(Qutke.com)。有10年IT程序开发和系统架构设计的经验,精通Java、R和Javascript三种编程语言,熟悉数据挖掘、统计和金融的多种算法。目前在互联网金融量化投资方向创业中,个人博客Alexa全球排名前10万。

作品目录

  • R的极客理想——高级开发篇
  • 前言
  • 为什么要写这本书
  • 读者对象
  • 如何阅读本书
  • 勘误和支持
  • 致谢
  • 第一部分 R的计算和算法应用
  • 第1章 R语言知识体系和数学函数
  • 1.1.1 R语言的知识体系结构
  • 1.1.2 R语言学习
  • 1.2.1 基本计算
  • 1.2.2 三角函数计算
  • 1.2.3 复数计算
  • 1.2.4 方程计算
  • 1.3.1 随机变量介绍
  • 1.3.2 随机变量的数字特征
  • 1.3.3 极限定理
  • 1.4.1 均匀分布
  • 1.4.2 正态分布
  • 1.4.3 指数分布
  • 1.4.4 伽玛分布
  • 1.4.5 韦布尔分布
  • 1.4.6 卡方分布
  • 1.4.7 F分布
  • 1.4.8 t分布
  • 1.4.9 贝塔分布
  • 1.5.1 导数计算
  • 1.5.2 初等函数的导数公式
  • 1.5.3 二阶导数计算
  • 1.5.4 偏导数计算
  • 第2章 R语言的算法实现
  • 2.1.1 Mahout的推荐算法模型
  • 2.1.2 R语言模型实现
  • 2.1.3 算法实现的原理——矩阵变换
  • 2.1.4 算法总结
  • 2.2.1 PageRank算法介绍
  • 2.2.2 PageRank算法原理
  • 2.2.3 R语言单机算法实现
  • 2.2.4 R语言分步式算法实现
  • 2.3.1 移动平均线
  • 2.3.2 均线模型
  • 2.3.3 用R语言实现均线模型
  • 2.4.1 遗传算法介绍
  • 2.4.2 遗传算法原理
  • 2.4.3 R语言中的遗传算法
  • 第二部分 深入R语言程序开发
  • 第3章 R内核编程
  • 3.1.1 pryr介绍
  • 3.1.2 pryr安装
  • 3.1.3 pryr使用
  • 3.2.1 R语言的环境空间
  • 3.2.2 环境空间的特征
  • 3.2.3 环境空间的访问
  • 3.3.1 R语言的函数环境空间
  • 3.3.2 封闭环境
  • 3.3.3 绑定环境
  • 3.3.4 运行环境
  • 3.3.5 调用环境
  • 3.3.6 完整的环境操作
  • 3.4.1 文件系统介绍
  • 3.4.2 目录操作
  • 3.4.3 文件操作
  • 3.4.4 几个特殊的目录
  • 3.5.1 R语言3.1.x版本介绍
  • 3.5.2 R语言3.1.0新特性及代码描述
  • 3.5.3 R语言3.1.1新特性及代码描述
  • 第4章 面向对象编程
  • 4.1.1 什么是面向对象
  • 4.1.2 R为什么要进行面向对象编程
  • 4.1.3 R的面向对象编程
  • 4.2.1 创建S3对象
  • 4.2.2 泛型函数和方法调用
  • 4.2.3 查看S3对象的函数
  • 4.2.4 S3对象的继承调用方式
  • 4.2.5 S3对象的缺点
  • 4.2.6 S3对象的使用
  • 4.3.1 创建S4对象
  • 4.3.2 访问S4对象的属性
  • 4.3.3 S4的泛型函数
  • 4.3.4 查看S4对象的函数
  • 4.3.5 S4对象的使用
  • 4.4.1 RC对象系统介绍
  • 4.4.2 创建RC类和对象
  • 4.4.3 对象赋值
  • 4.4.4 定义对象的方法
  • 4.4.5 RC对象内置方法和内置属性
  • 4.4.6 RC类的辅助函数
  • 4.4.7 RC对象系统的使用
  • 4.5.1 初识R6
  • 4.5.2 创建R6类和实例化对象
  • 4.5.3 R6类的主动绑定
  • 4.5.4 R6类的继承关系
  • 4.5.5 R6类对象的静态属性
  • 4.5.6 R6类的可移植类型
  • 4.5.7 R6类的动态绑定
  • 4.5.8 R6类的打印函数
  • 4.5.9 实例化对象的存储
  • 4.5.10 R6面向对象系统的案例
  • 第三部分 开发自己的R包
  • 第5章 R包开发
  • 5.1.1 用Linux命令行开发R包
  • 5.1.2 RStudio中开发R包
  • 5.2.1 开发流程介绍
  • 5.2.2 编写功能代码
  • 5.2.3 调试程序
  • 5.2.4 单元测试
  • 5.2.5 撰写文档
  • 5.2.6 程序打包
  • 5.2.7 程序发布
  • 5.3.1 项目介绍
  • 5.3.2 系统架构设计
  • 5.3.3 R语言程序实现
  • 5.4.1 构建项目
  • 5.4.2 静态数据
  • 5.4.3 编写功能代码
  • 5.4.4 项目配置文件
  • 5.4.5 调试程序
  • 5.4.6 程序打包
  • 第6章 R语言游戏之旅
  • 6.1.1 R语言图形事件
  • 6.1.2 图形事件API
  • 6.1.3 键盘事件
  • 6.1.4 鼠标事件
  • 6.2.1 贪食蛇游戏介绍
  • 6.2.2 场景设计
  • 6.2.3 程序设计
  • 6.2.4 R语言实现
  • 6.3.1 贪食蛇的面向对象改造
  • 6.3.2 游戏框架定义
  • 6.3.3 在框架中重新实现贪食蛇游戏
  • 6.4.1 2048游戏介绍
  • 6.4.2 场景设计
  • 6.4.3 程序设计
  • 6.4.4 R语言实现
  • 6.5.1 知识储备
  • 6.5.2 gridgame包开发
  • 6.5.3 gridgame包发布
展开全部