新書推薦:
《
李白传(20世纪文史学家李长之经典传记)
》
售價:HK$
45.8
《
津轻:日本无赖派文学代表太宰治自传性随笔集
》
售價:HK$
66.7
《
河流之齿
》
售價:HK$
59.8
《
新经济史革命:计量学派与新制度学派
》
售價:HK$
89.7
《
盗墓笔记之秦岭神树4
》
售價:HK$
57.3
《
战胜人格障碍
》
售價:HK$
66.7
《
逃不开的科技创新战争
》
售價:HK$
103.3
《
漫画三国一百年
》
售價:HK$
55.2
|
內容簡介: |
本书从R语言的基础知识入手,深入介绍了R函数式编程、R语言的面向对象特性、程序的调试、代码优化和性能调优。同时,本书也介绍了R语言如何与HTML和LaTex语言结合的技术,介绍了高性能计算以及C语言编程接口。
|
目錄:
|
目录推荐序译者序第1章 简介11.1 本书的目标读者21.2 通过本书你可以学到什么21.3 元技术31.4 推荐阅读31.5 获取帮助41.6 致谢41.7 约定51.8 声明5第一部分 基础知识第2章 数据结构82.1 向量92.1.1 原子向量92.1.2 列表112.1.3 练习122.2 属性122.2.1 因子132.2.2 练习152.3 矩阵和数组152.4 数据框172.4.1 数据框构建172.4.2 类型判断与强制转换182.4.3 合并数据框182.4.4 特殊列192.4.5 练习192.5 答案19第3章 子集选取213.1 数据类型223.1.1 原子向量223.1.2 列表233.1.3 矩阵和数组233.1.4 数据框243.1.5 S3对象253.1.6 S4对象253.1.7 练习253.2 子集选取运算符263.2.1 简化与保留263.2.2 $273.2.3 缺失超出索引边界(越界引用)283.2.4 练习283.3 子集选取与赋值293.4 应用303.4.1 查询表字符子集选取303.4.2 人工比对与合并(整数子集选取)303.4.3 随机样本自助法(整数子集选取) 313.4.4 排序(整数子集选取313.4.5 展开重复记录(整数子集选取) 323.4.6 剔除数据框中某些列(字符子集选取) 333.4.7 根据条件选取行(逻辑子集选取) 333.4.8 布尔代数与集合(逻辑和整数子集选取) 343.4.9 练习353.5 答案35第4章 常用函数与数据结构364.1 基础函数364.2 常见数据结构374.3 统计函数384.4 使用R394.5 IO函数39第5章 R编程风格指南405.1 符号和名字405.1.1 文件名405.1.2 对象名405.2 语法415.2.1 空格415.2.2 大括号425.2.3 行的长度425.2.4 缩进425.2.5 赋值435.3 结构43第6章 函数446.1 函数组成部分456.1.1 原函数456.1.2 练习466.2 词法作用域466.2.1 名字屏蔽476.2.2 函数与变量486.2.3 重新开始486.2.4 动态查找496.2.5 练习506.3 每个运算都是一次函数调用506.4 函数参数516.4.1 函数调用526.4.2 使用参数列表来调用函数536.4.3 默认参数和缺失参数536.4.4 惰性求值546.4.5 ...参数566.4.6 练习576.5 特殊调用576.5.1 中缀函数576.5.2 替换函数586.5.3 练习596.6 返回值596.6.1 退出时616.6.2 练习626.7 答案62第7章 面向对象编程指南647.1 基础类型657.2 S3667.2.1 认识对象、泛型函数和方法667.2.2 定义类和创建对象677.2.3 创建新方法和泛型函数697.2.4 方法分派697.2.5 练习717.3 S4717.3.1 识别对象、泛型函数和方法727.3.2 定义类并创建对象737.3.3 创建新方法和泛型函数747.3.4 方法分派747.3.5 练习757.4 RC757.4.1 定义类和创建对象757.4.2 识别类和方法777.4.3 方法分派777.4.4 练习777.5 选择一个系统777.6 答案78第8章 环境798.1 环境基础798.2 环境递归838.3 函数环境858.3.1 封闭环境858.3.2 绑定环境868.3.3 执行环境878.3.4 调用环境888.3.5 练习908.4 绑定名字和数值908.5 显式环境928.5.1 避免复制938.5.2 软件包状态938.5.3 模拟hashmap938.6 答案94第9章 调试、条件处理和防御性编程959.1 调试技巧969.2 调试工具979.2.1 确定调用顺序989.2.2 查看错误999.2.3 查看任意代码1009.2.4 调用栈:traceback、where和recover1009.2.5 其他类型的故障1019.3 条件处理1029.3.1 使用try来忽略错误1029.3.2 使用tryCatch处理条件1039.3.3 withCallingHandlers1059.3.4 自定义信号类1069.3.5 练习1079.4 防御性编程1079.5 答案109第二部分 函数式编程第10章 函数式编程11210.1 动机11210.2 匿名函数11610.3 闭包11710.3.1 函数工厂11910.3.2 可变状态11910.3.3 练习12010.4 函数列表12010.4.1 将函数列表移到全局环境中12210.4.2 练习12310.5 案例研究:数值积分124第11章 泛函12711.1 第一个泛函:lapply12811.1.1 循环模式12911.1.2 练习13011.2 for循环泛函:lapply的相似函数13111.2.1 向量输出:sapply和vapply13111.2.2 多重输入:Map(和mapply)13311.2.3 滚动计算13411.2.4 并行化13511.2.5 练习13611.3 操作矩阵和数据框13711.3.1 矩阵和数组运算13711.3.2 组应用13811.3.3 plyr添加包13911.3.4 练习14011.4 列表操作14011.4.1 Reduce14011.4.2 判断泛函14111.4.3 练习14111.5 数学泛函14211.6 应该保留的循环14311.6.1 原位修改14311.6.2 递归关系14411.6.3 while循环14411.7 创建一个函数系列145第12章 函数运算符14912.1 行为函数运算符15012.1.1 缓存15212.1.2 捕获函数调用15312.1.3 惰性15512.1.4 练习15512.2 输出函数运算符15612.2.1 简单修饰15612.2.2 改变函数的输出15712.2.3 练习15812.3 输入函数运算符15912.3.1 预填充函数参数:局部函数应用15912.3.2 改变输入类型15912.3.3 练习16012.4 组合函数运算符16112.4.1 函数复合16112.4.2 逻辑判断和布尔代数16312.4.3 练习163第三部分 语言计算第13章 非标准计算16613.1 表达式获取16713.2 在子集中进行非标准计算16813.3 作用域问题17113.4 从其他函数调用17313.5 替换17513.5.1 为替换提供应急方案17713.5.2 捕获未计算的表达式17713.5.3 练习17813.6 非标准计算的缺点178第14章 表达式18014.1 表达式的结构18014.2 名字18314.3 调用18414.3.1 修改调用18514.3.2 根据调用的元素来创建调用18614.3.3 练习18614.4 捕获当前调用18714.5 成对列表18914.6 解析与逆解析19114.7 使用递归函数遍历抽象语法树19214.7.1 寻找F和T19314.7.2 寻找通过赋值创建的所有变量19414.7.3 修改调用树19714.7.4 练习198第15章 领域特定语言20015.1 HTML20015.1.1 目标20115.1.2 转义20215.1.3 基本标签函数20315.1.4 标签函数20415.1.5 处理所有标签20515.1.6 练习20615.2 LaTeX20615.2.1 LaTeX 数学20615.2.2 目标20715.2.3 to_math20715.2.4 已知符号20715.2.5 未知符号20815.2.6 已知函数20915.2.7 未知函数21015.2.8 练习211第四部分 性能第16章 性能21416.1 R为什么速度慢21416.2 微测试21516.3 语言性能21616.3.1 极端动态性21616.3.2 可变环境下的名字搜索21816.3.3 惰性求值开销21916.3.4 练习21916.4 实现的性能22016.4.1 从数据框提取单一值22016.4.2 ifelse、pmin和pmax22016.4.3 练习22216.5 其他的R实现222第17章 代码优化22517.1 性能测试22617.2 改进性能22917.3 组织代码22917.4 有人已经解决了这个问题吗23017.5 尽可能少做23117.6 向量化23617.7 避免复制23717.8 字节码编译23817.9 案例研究:t检验23817.10 并行化24017.11 其他技术241第18章 内存24318.1 对象大小24318.2 内存使用与垃圾回收24618.3 使用lineprof对内存进行性能分析24818.4 原地修改25018.4.1 循环25218.4.2 练习253第19章 使用Rcpp编写高性能函数25419.1 开始使用C++25519.1.1 没有输入,标量输出25619.1.2 标量输入,标量输出25619.1.3 向量输入,标量输出25719.1.4 向量输入,向量输出25819.1.5 矩阵输入,向量输出25819.1.6 使用sourceCpp25919.1.7 练习26019.2 属性和其他类26119.2.1 列表和数据框26219.2.2 函数26219.2.3 其他类型26319.3 缺失值26319.3.1 标量26319.3.2 字符串26519.3.3 布尔型26519.3.4 向量26519.3.5 练习26619.4 Rcpp 语法糖26619.4.1 算术和逻辑运算符26619.4.2 逻辑总结函数26719.4.3 向量视图26719.4.4 其他有用的函数26719.5 STL26819.5.1 使用迭代器26819.5.2 算法26919.5.3 数据结构27019.5.4 向量27019.5.5 集合27119.5.6 图27219.5.7 练习27219.6 案例研究27219.6.1 Gibbs采样器27319.6.2 R向量化与C++向量化27419.7 在添加包中应用Rcpp27519.8 更多学习资源27619.9 致谢277第20章 R的C接口27820.1 从R中调用C函数27920.2 C数据结构28020.3 创建和修改向量28120.3.1 创建向量和垃圾回收28120.3.2 缺失值和非有限值28220.3.3 访问向量数据28320.3.4 字符向量和列表28420.3.5 修改输入28420.3.6 强制转换标量28520.3.7 长向量28520.4 成对列表28620.5 输入验证28720.6 寻找一个函数的C源代码289索引292
|
|