高级R语言编程指南pdf

图书网 2018年8月28日17:46:0933.8K

本书为解决各种R语言编程问题提供了非常有用的工具和技术,帮助你少走弯路。书中阐释了R语言简洁、优美以及灵活的核心特点,展示了许多必备的技巧,通过它们可以创建在各个场景中使用的优质代码。

本书主要内容

R语言基础知识,包括标准数据类型和函数。

将函数式编程作为有用的框架来解决多类问题。

元编程的优点与缺点。

编写快速及节省内存的程序。

本书展示了R的特别之处,为R软件使用者成为R程序员奠定了基础。中级R程序员则可以通过本书更深入地研究R语言,学习新策略来解决各种问题。而其他语言的程序员可以通过本书细致地了解R语言并理解R语言的运行方式。

高级R语言编程指南 内容简介

本书从R语言的基础知识入手,深入介绍了R函数式编程、R语言的面向对象特性、程序的调试、代码优化和性能调优。同时,本书也介绍了R语言如何与HTML和LaTex语言结合的技术,介绍了高性能计算以及C语言编程接口。

高级R语言编程指南 目录

第1章 简介

1.1 本书的目标读者

1.2 通过本书你可以学到什么

1.3 元技术

1.4 推荐阅读

1.5 获取帮助

1.6 致谢

1.7 约定

1.8 声明

第一部分 基础知识

第2章 数据结构

2.1 向量

2.1.1 原子向量

2.1.2 列表

2.1.3 练习

2.2 属性

2.2.1 因子

2.2.2 练习

2.3 矩阵和数组

2.4 数据框

2.4.1 数据框构建

2.4.2 类型判断与强制转换

2.4.3 合并数据框

2.4.4 特殊列

2.4.5 练习

2.5 答案

第3章 子集选取

3.1 数据类型

3.1.1 原子向量

3.1.2 列表

3.1.3 矩阵和数组

3.1.4 数据框

3.1.5 S3对象

3.1.6 S4对象

3.1.7 练习

3.2 子集选取运算符

3.2.1 简化与保留

3.2.2 $

3.2.3 缺失/超出索引边界(越界引用)

3.2.4 练习

3.3 子集选取与赋值

3.4 应用

3.4.1 查询表(字符子集选取)

3.4.2 人工比对与合并(整数子集选取)

3.4.3 随机样本/自助法(整数子集选取)

3.4.4 排序(整数子集选取)

3.4.5 展开重复记录(整数子集选取)

3.4.6 剔除数据框中某些列(字符子集选取)

3.4.7 根据条件选取行(逻辑子集选取)

3.4.8 布尔代数与集合(逻辑和整数子集选取)

3.4.9 练习

3.5 答案

第4章 常用函数与数据结构

4.1 基础函数

4.2 常见数据结构

4.3 统计函数

4.4 使用R

4.5 I/O函数

第5章 R编程风格指南

5.1 符号和名字

5.1.1 文件名

5.1.2 对象名

5.2 语法

5.2.1 空格

5.2.2 大括号

5.2.3 行的长度

5.2.4 缩进

5.2.5 赋值

5.3 结构

第6章 函数

6.1 函数组成部分

6.1.1 原函数

6.1.2 练习

6.2 词法作用域

6.2.1 名字屏蔽

6.2.2 函数与变量

6.2.3 重新开始

6.2.4 动态查找

6.2.5 练习

6.3 每个运算都是一次函数调用

6.4 函数参数

6.4.1 函数调用

6.4.2 使用参数列表来调用函数

6.4.3 默认参数和缺失参数

6.4.4 惰性求值

6.4.5 ...参数

6.4.6 练习

6.5 特殊调用

6.5.1 中缀函数

6.5.2 替换函数

6.5.3 练习

6.6 返回值

6.6.1 退出时

6.6.2 练习

6.7 答案

第7章 面向对象编程指南

7.1 基础类型

7.2 S3

7.2.1 认识对象、泛型函数和方法

7.2.2 定义类和创建对象

7.2.3 创建新方法和泛型函数

7.2.4 方法分派

7.2.5 练习

7.3 S4

7.3.1 识别对象、泛型函数和方法

7.3.2 定义类并创建对象

7.3.3 创建新方法和泛型函数

7.3.4 方法分派

7.3.5 练习

7.4 RC

7.4.1 定义类和创建对象

7.4.2 识别类和方法

7.4.3 方法分派

7.4.4 练习

7.5 选择一个系统

7.6 答案

第8章 环境

8.1 环境基础

8.2 环境递归

8.3 函数环境

8.3.1 封闭环境

8.3.2 绑定环境

8.3.3 执行环境

8.3.4 调用环境

8.3.5 练习

8.4 绑定名字和数值

8.5 显式环境

8.5.1 避免复制

8.5.2 软件包状态

8.5.3 模拟hashmap

8.6 答案

第9章 调试、条件处理和防御性编程

9.1 调试技巧

9.2 调试工具

9.2.1 确定调用顺序

9.2.2 查看错误

9.2.3 查看任意代码

9.2.4 调用栈:traceback()、where和recover()

9.2.5 其他类型的故障

9.3 条件处理

9.3.1 使用try来忽略错误

9.3.2 使用tryCatch()处理条件

9.3.3 withCallingHandlers()

9.3.4 自定义信号类

9.3.5 练习

9.4 防御性编程

9.5 答案

第二部分 函数式编程

第10章 函数式编程

10.1 动机

10.2 匿名函数

10.3 闭包

10.3.1 函数工厂

10.3.2 可变状态

10.3.3 练习

10.4 函数列表

10.4.1 将函数列表移到全局环境中

10.4.2 练习

10.5 案例研究:数值积分

第11章 泛函

11.1 第一个泛函:lapply()

11.1.1 循环模式

11.1.2 练习

11.2 for循环泛函:lapply()的相似函数

11.2.1 向量输出:sapply和vapply

11.2.2 多重输入:Map(和mapply)

11.2.3 滚动计算

11.2.4 并行化

11.2.5 练习

11.3 操作矩阵和数据框

11.3.1 矩阵和数组运算

11.3.2 组应用

11.3.3 plyr添加包

11.3.4 练习

11.4 列表操作

11.4.1 Reduce()

11.4.2 判断泛函

11.4.3 练习

11.5 数学泛函

11.6 应该保留的循环

11.6.1 原位修改

11.6.2 递归关系

11.6.3 while循环

11.7 创建一个函数系列

第12章 函数运算符

12.1 行为函数运算符

12.1.1 缓存

12.1.2 捕获函数调用

12.1.3 惰性

12.1.4 练习

12.2 输出函数运算符

12.2.1 简单修饰

12.2.2 改变函数的输出

12.2.3 练习

12.3 输入函数运算符

12.3.1 预填充函数参数:局部函数应用

12.3.2 改变输入类型

12.3.3 练习

12.4 组合函数运算符

12.4.1 函数复合

12.4.2 逻辑判断和布尔代数

12.4.3 练习

第三部分 语言计算

第13章 非标准计算

13.1 表达式获取

13.2 在子集中进行非标准计算

13.3 作用域问题

13.4 从其他函数调用

13.5 替换

13.5.1 为替换提供应急方案

13.5.2 捕获未计算的表达式

13.5.3 练习

13.6 非标准计算的缺点

第14章 表达式

14.1 表达式的结构

14.2 名字

14.3 调用

14.3.1 修改调用

14.3.2 根据调用的元素来创建调用

14.3.3 练习

14.4 捕获当前调用

14.5 成对列表

14.6 解析与逆解析

14.7 使用递归函数遍历抽象语法树

14.7.1 寻找F和T

14.7.2 寻找通过赋值创建的所有变量

14.7.3 修改调用树

14.7.4 练习

第15章 领域特定语言

15.1 HTML

15.1.1 目标

15.1.2 转义

15.1.3 基本标签函数

15.1.4 标签函数

15.1.5 处理所有标签

15.1.6 练习

15.2 LaTeX

15.2.1 LaTeX数学

15.2.2 目标

15.2.3 to_math

15.2.4 已知符号

15.2.5 未知符号

15.2.6 已知函数

15.2.7 未知函数

15.2.8 练习

第四部分 性能

第16章 性能

16.1 R为什么速度慢

16.2 微测试

16.3 语言性能

16.3.1 极端动态性

16.3.2 可变环境下的名字搜索

16.3.3 惰性求值开销

16.3.4 练习

16.4 实现的性能

16.4.1 从数据框提取单一值

16.4.2 ifelse()、pmin()和pmax()

16.4.3 练习

16.5 其他的R实现

第17章 代码优化

17.1 性能测试

17.2 改进性能

17.3 组织代码

17.4 有人已经解决了这个问题吗

17.5 尽可能少做

17.6 向量化

17.7 避免复制

17.8 字节码编译

17.9 案例研究:t检验

17.10 并行化

17.11 其他技术

第18章 内存

18.1 对象大小

18.2 内存使用与垃圾回收

18.3 使用lineprof对内存进行性能分析

18.4 原地修改

18.4.1 循环

18.4.2 练习

第19章 使用Rcpp编写高性能函数

19.1 开始使用C++

19.1.1 没有输入,标量输出

19.1.2 标量输入,标量输出

19.1.3 向量输入,标量输出

19.1.4 向量输入,向量输出

19.1.5 矩阵输入,向量输出

19.1.6 使用sourceCpp

19.1.7 练习

19.2 属性和其他类

19.2.1 列表和数据框

19.2.2 函数

19.2.3 其他类型

19.3 缺失值

19.3.1 标量

19.3.2 字符串

19.3.3 布尔型

19.3.4 向量

19.3.5 练习

19.4 Rcpp语法糖

19.4.1 算术和逻辑运算符

19.4.2 逻辑总结函数

19.4.3 向量视图

19.4.4 其他有用的函数

19.5 STL

19.5.1 使用迭代器

19.5.2 算法

19.5.3 数据结构

19.5.4 向量

19.5.5 集合

19.5.6 图

19.5.7 练习

19.6 案例研究

19.6.1 Gibbs采样器

19.6.2 R向量化与C++向量化

19.7 在添加包中应用Rcpp

19.8 更多学习资源

19.9 致谢

第20章 R的C接口

20.1 从R中调用C函数

20.2 C数据结构

20.3 创建和修改向量

20.3.1 创建向量和垃圾回收

20.3.2 缺失值和非有限值

20.3.3 访问向量数据

20.3.4 字符向量和列表

20.3.5 修改输入

20.3.6 强制转换标量

20.3.7 长向量

20.4 成对列表

20.5 输入验证

20.6 寻找一个函数的C源代码

索引

高级R语言编程指南 精彩文摘

1.3 元技术

有两种元技术对改善R程序员的技术非常有帮助:阅读源代码和采用科学的思维方式。

阅读源代码之所以重要是因为它可以帮助你写出更好的代码。开始培养这种技能的一种好方法就是查看你经常使用的函数和添加包的源代码。你会发现其中有很多值得效仿的地方,这样你就会知道什么可以使你的代码更好。你也会看到一些你不喜欢的东西,或许因为它的优点不够明显或者它让你感到不舒服。这样的代码也不是没有意义,它可以让你对好代码和坏代码有更具体的认识。

图书网:高级R语言编程指南pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:3   其中:访客  3   博主  0
    • huihui
      huihui 9

      棒棒哒,有很多好书,站长辛苦了

      • 飞舞的冰龙
        飞舞的冰龙 0

        非常感兴趣的一本书,适合 R 进阶使用。

        • lwt
          lwt 0

          非常好的书,站长辛苦了