包邮 R语言编程艺术|3767869

包邮 R语言编程艺术|3767869 pdf epub mobi txt 电子书 下载 2025

美 Norman Matloff 著,陈堰平 邱怡轩 潘岚 译
图书标签:
  • R语言
  • 编程
  • 数据分析
  • 统计学
  • 计算机科学
  • 技术
  • 书籍
  • 包邮
  • 入门
  • 实战
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 互动创新图书专营店
出版社: 机械工业出版社
ISBN:9787111423140
商品编码:27158113032
丛书名: 华章程序员书库
出版时间:2013-05-01
页数:303

具体描述

 书[0名0]:  R语言编程艺术|3767869
 图书定价:  69元
 图书作者:  (美)[0No0]rman Matloff
 出版社:   [1机1] 械工业出版社
 出版日期:  2013/5/1 0:00:00
 ISBN号:  9787111423140
 开本:  16开
 页数:  303
 版次:  1-1
 作者简介
[0No0]rman Matloff,著[0名0]计算 [1机1] 科[0学0]家兼统计[0学0]家,美[0国0]加州[0大0][0学0]戴维斯分校计算 [1机1] 科[0学0]系教授,曾是该校统计专业的创建者之一,并担任过统计[0学0]教授,对并行编程、网络流量、数据挖掘、磁盘系统性能等方面的技术都有深入的研究。他乐于分享,撰写了多部广受欢迎的关于软件开发的在线教程,多次为《纽约时报》、《华盛顿邮报》、《福布斯杂志》以及《洛杉矶时报》撰写文章,是《The Art of Debugging》的作者之一。
 内容简介
《R语言编程艺术》是R语言[0领0]域公认的经典著作,由著[0名0]计算 [1机1] 科[0学0]家兼统计[0学0]家撰写,五星级[0畅0]销书。它是一本面向R语言开发者的纯编程类书籍,不需要读者具备统计[0学0]基础,从编程角度而非统计[0学0]角度系统讲解了R语言的数据结构、编程结构、语[0法0]、TCP/IP网络编程、并行计算、代码调试、程序性能[0优0]化、编程技巧以及R语言与其他语言的接口等所有与R编程相关的[0知0]识,几乎面面俱到。本书的实用性也非常强,44个精选的扩展案例,充分展示了R语言在数据处理和统计分析方面的强[0大0]能力。
全书一共16章:[0第0]1章介绍了[0学0]习R语言需要掌握的预备[0知0]识以及它的一些重要数据结构;[0第0]2~6章详细讲解了R语言的主要数据结构,包括向量、矩阵、数组、列表、数据框和因子;[0第0]7~13章全面讲解了R语言的语[0法0],包括编程结构、面向对象特性、数[0学0]运算与模拟、输入与输出、字符串处理、绘图,以及R语言的调试方[0法0]。[0第0]14~16章讲解了R语言编程的高级内容,如执行速度和性能的提升、R语言与C/C++或Python的混合编程,以及R语言的并行计算等。
 目录

《R语言编程艺术》
译者序
前 言
致 谢
[0第0]1章 快速入门 1
1.1 怎样运行R 1
1.1.1 交互模式 1
1.1.2 批处理模式 2
1.2 个R[0会0]话 3
1.3 函数入门 5
1.3.1 变量的作用域 7
1.3.2 默认参数 8
1.4 R语言中一些重要的数据结构 8
1.4.1 向量,R语言中的战斗 [1机1] 8
1.4.2 字符串 9
1.4.3 矩阵 9
1.4.4 列表 10
1.4.5 数据框 12
1.4.6 类 12
1.5 扩展案例:考试成绩的回归分析 13
1.6 启动和关闭R 16
1.7 获取帮助 17
1.7.1 help()函数 18
1.7.2 example()函数 18
1.7.3 如果你不太清楚要查找什么 19
1.7.4 其他主题的帮助 20
1.7.5 批处理模式的帮助 21
1.7.6 互联网资源 21
[0第0]2章 向量 22
2.1 标量、向量、数组与矩阵 22
2.1.1 添加或删除向量元素 22
2.1.2 获取向量长度 23
2.1.3 作为向量的矩阵和数组 24
2.2 声明 24
2.3 循环补齐 25
2.4 常用的向量运算 26
2.4.1 向量运算和逻辑运算 26
2.4.2 向量索引 27
2.4.3 用:运算符创建向量 28
2.4.4 使用seq()创建向量 28
2.4.5 使用rep()重复向量常数 29
2.5 使用[0all0]()和any() 30
2.5.1 扩展案例:寻找连续出现1的游程 30
2.5.2 扩展案例:预测离散值时间序列 31
2.6 向量化运算符 34
2.6.1 向量输入,向量输出 34
2.6.2 向量输入,矩阵输出 36
2.7 NA与NULL值 37
2.7.1 NA的使用 37
2.7.2 NULL的使用 37
2.8 筛选 38
2.8.1 生成筛选索引 38
2.8.2 使用subset()函数筛选 40
2.8.3 选择函数which() 40
2.9 向量化的ifelse()函数 41
2.9.1 扩展案例:度量相关性 42
2.9.2 扩展案例:对鲍鱼数据集重[亲斤]编码 44
2.10 测试向量相等 46
2.11 向量元素的[0名0]称 47
2.12 关于c()的更多内容 48
[0第0]3章 矩阵和数组 49
3.1 创建矩阵 49
3.2 一般矩阵运算 50
3.2.1 线性代数运算 50
3.2.2 矩阵索引 51
3.2.3 扩展案例:图像操作 52
3.2.4 矩阵元素筛选 55
3.2.5 扩展案例:生成协方差矩阵 57
3.3 对矩阵的行和列调用函数 58
3.3.1 使用apply()函数 58
3.3.2 扩展案例:寻找异常值 60
3.4 增加或删除矩阵的行或列 61
3.4.1 改变矩阵的[0大0]小 61
3.4.2 扩展案例:找到图中距离近的一对端点 63
3.5 向量与矩阵的差异 65
3.6 避免意外降维 66
3.7 矩阵的行和列的命[0名0]问题 68
3.8 高维数组 68
[0第0]4章 列表 71
4.1 创建列表 71
4.2 列表的常规操作 72
4.2.1 列表索引 72
4.2.2 增加或删除列表元素 73
4.2.3 获取列表长度 75
4.2.4 扩展案例:文本词汇索引 75
4.3 访问列表元素和值 78
4.4 在列表上使用apply系列函数 79
4.4.1 lapply()和sapply()的使用 79
4.4.2 扩展案例:文本词汇索引(续) 80
4.4.3 扩展案例:鲍鱼数据 82
4.5 递归型列表 83
[0第0]5章 数据框 85
5.1 创建数据框 85
5.1.1 访问数据框 85
5.1.2 扩展案例:考试成绩的回归分析(续) 86
5.2 其他矩阵式操作 87
5.2.1 提取子数据框 87
5.2.2 缺失值的处理 88
5.2.3 使用rbind()和cbind()等函数 89
5.2.4 使用apply() 90
5.2.5 扩展案例:工资研究 90
5.3 合并数据框 92
5.4 应用于数据框的函数 95
5.4.1 在数据框上应用lapply()和sapply()函数 95
5.4.2 扩展案例:应用Logistic模型 95
5.4.3 扩展案例:[0学0]习中文方言的辅助工具 96
[0第0]6章 因子和表 102
6.1 因子与水平 102
6.2 因子的常用函数 103
6.2.1 tapply函数 103
6.2.2 split()函数 105
6.2.3 by()函数 106
6.3 表的操作 107
6.3.1 表中有关矩阵和类似数组的操作 109
6.3.2 扩展案例: 提取子表 111
6.3.3 扩展案例:在表中寻找频数[0大0]的单元格 113
6.4 其他与因子和表有关的函数 114
6.4.1 aggregate()函数 115
6.4.2 cut()函数 115
[0第0]7章 R语言编程结构 116
7.1 控制语句 116
7.1.1 循环 116
7.1.2 对非向量集合的循环 119
7.1.3 if-else结构 120
7.2 算术和逻辑运算符及数值 121
7.3 参数的默认值 122
7.4 返回值 123
7.4.1 决定是否显式调用return () 124
7.4.2 返回复杂对象 124
7.5 函数都是对象 124
7.6 环境和变量作用域的问题 127
7.6.1 [0顶0]层环境 127
7.6.2 变量作用域的层次 128
7.6.3 关于ls()的进一步讨论 131
7.6.4 函数(几乎)没有副作用 131
7.6.5 扩展案例:显示调用框的函数 132
7.7 R语言中没有指针 134
7.8 向上级层次进行写操作 136
7.8.1 利用[0超0]赋值运算符对非局部变量进行写操作 136
7.8.2 用assign()函数对非局部变量进行写操作 137
7.8.3 扩展案例:用R语言实现离散事件仿真 138
7.8.4 什么时候使用全局变量 145
7.8.5 闭包 147
7.9 递归 148
7.9.1 Quicksort的具体实现 149
7.9.2 拓展举例:二叉查找树 150
7.10 置换函数 155
7.10.1 什么是置换函数 155
7.10.2 扩展案例:可记录元素修改次数的向量类 156
7.11 写函数代码的工具 158
7.11.1 文本编辑器和集成开发环境 158
7.11.2 edit()函数 158
7.12 创建自己的二元运算符 159
7.13 匿[0名0]函数 159
[0第0]8章 数[0学0]运算与模拟 161
8.1 数[0学0]函数 161
8.1.1 扩展例子:计算概率 161
8.1.2 累积和与累积乘积 162
8.1.3 小值和[0大0]值 162
8.1.4 微积分 163
8.2 统计分布函数 164
8.3 排序 165
8.4 向量和矩阵的线性代数运算 166
8.4.1 扩展示例:向量叉积 169
8.4.2 扩展示例:确定马尔科夫链的平稳分布 170
8.5 集合运算 171
8.6 用R做模拟 173
8.6.1 内置的随 [1机1] 变量发生器 173
8.6.2 重复运行时获得相同的随 [1机1] 数流 175
8.6.3 扩展案例:组合的模拟 175
[0第0]9章 面向对象的编程 177
9.1 S3类 177
9.1.1 S3泛型函数 177
9.1.2 实例:线性模型函数lm()中的OOP 178
9.1.3 寻找泛型函数的实现方[0法0] 179
9.1.4 编写S3类 181
9.1.5 使用继承 182
9.1.6 扩展示例:用于存储上三角矩阵的类 183
9.1.7 扩展示例:多项式回归程序 187
9.2 S4类 191
9.2.1 编写S4类 191
9.2.2 在S4类上实现泛型函数 193
9.3 S3类和S4类的对比 193
9.4 对象的管理 194
9.4.1 用ls()函数列出所有对象 194
9.4.2 用rm()函数删除特定对象 194
9.4.3 用save()函数保存对象集合 195
9.4.4 查看对象内部结构 196
9.4.5 exists()函数 197
[0第0]10章 输入与输出 198
10.1 连接键盘与显示器 198
10.1.1 使用scan()函数 198
10.1.2 使用readline()函数 200
10.1.3 输出到显示器 201
10.2 读写文件 202
10.2.1 从文件中读取数据框或矩阵 202
10.2.2 读取文本文件 203
10.2.3 连接的介绍 203
10.2.4 扩展案例:读取PUMS普查数据 204
10.2.5 通过URL在远程计算 [1机1] 上访问文件 208
10.2.6 写文件 209
10.2.7 获取文件和目录信息 210
10.2.8 扩展案例:多个文件内容的和 211
10.3 访问互联网 211
10.3.1 TCP/IP概述 212
10.3.2 R中的socket 212
10.3.3 扩展案例:实现R的并行计算 213
[0第0]11章 字符串操作 216
11.1 字符串操作函数概述 216
11.1.1 grep() 216
11.1.2 nchar() 216
11.1.3 paste() 217
11.1.4 sprintf() 217
11.1.5 substr() 217
11.1.6 strsplit() 217
11.1.7 regexpr() 218
11.1.8 gregexpr() 218
11.2 正则表达式 218
11.2.1 扩展案例:检测文件[0名0]的后缀 219
11.2.2 扩展案例:生成文件[0名0] 220
11.3 在调试工具edtdbg中使用字符串工具 221
[0第0]12章 绘图 224
12.1 创建图形 224
12.1.1 基础图形系统的核心:plot()函数 224
12.1.2 添加线条:abline()函数 225
12.1.3 在保持现有图形的基础上[亲斤]增一个绘图窗口 226
12.1.4 扩展案例:在一张图中绘制两条密度曲线 227
12.1.5 扩展案例:进一步考察多项式回归 228
12.1.6 添加点:points()函数 231
12.1.7 添加图例:legend()函数 231
12.1.8 添加文字:text()函数 232
12.1.9 精确定位:locator()函数 232
12.1.10 保存图形 233
12.2 定制图形 233
12.2.1 改变字符[0大0]小:cex选项 233
12.2.2 改变坐标轴的范围:xlim和ylim选项 234
12.2.3 添加多边形:polygon()函数 235
12.2.4 平滑散点:lowess()和loess()函数 236
12.2.5 绘制具有显式表达式的函数 237
12.2.6 扩展案例:放[0大0]曲线的一部分 237
12.3 将图形保存到文件 240
12.3.1 R图形设备 240
12.3.2 保存已显示的图形 241
12.3.3 关闭R图形设备 241
12.4 创建三维图形 241
[0第0]13章 调试 243
13.1 调试的基本原则 243
13.1.1 调试的本质:确认原则 243
13.1.2 从小处着手 243
13.1.3 模块化的、自[0顶0]向下的调试风格 244
13.1.4 反漏洞 244
13.2 为什么要使用调试工具 244
13.3 使用R的调试工具 245
13.3.1 利用debug()和browser()函数进行逐步调试 245
13.3.2 使用浏览器命令 246
13.3.3 设置断点 246
13.3.4 使用trace()函数进行追踪 247
13.3.5 使用traceback()和debugger()函数对崩溃的程序进行检查 248
13.3.6 扩展案例:两个完整的调试[0会0]话 248
13.4 更方便的调试工具 256
13.5 在调试模拟数据的代码时请确保一致性 258
13.6 语[0法0]和运行时错误 258
13.7 在R上运行GDB 259
[0第0]14章 性能提升:速度和内存 260
14.1 编写快速的R代码 260
14.2 可怕的for循环 260
14.2.1 用向量化提升速度 261
14.2.2 扩展案例:在蒙特卡罗模拟中获得更快的速度 262
14.2.3 扩展案例:生成幂次矩阵 266
14.3 函数式编程和内存问题 267
14.3.1 向量赋值问题 267
14.3.2 改变时拷贝 268
14.3.3 扩展案例:避免内存拷贝 269
14.4 利用Rprof()来寻找代码的瓶颈 270
14.4.1 利用Rprof()来进行监视 270
14.4.2 Rprof()的工作原理 271
14.5 字节码编译 273
14.6 内存无[0法0]装下数据怎么办 273
14.6.1 分块 274
14.6.2 利用R软件包来进行内存管理 274
[0第0]15章 R与其他语言的接口 275
15.1 编写能被R调用的C/C++函数 275
15.1.1 R与C/C++交互的预备[0知0]识 275
15.1.2 例子:提取方阵的次对角线元素 275
15.1.3 编译和运行程序 276
15.1.4 调试R/C程序 277
15.1.5 扩展案例:预测离散取值的时间序列 279
15.2 从Python调用R 281
15.2.1 安装RPy 281
15.2.2 RPy语[0法0] 282
[0第0]16章 R语言并行计算 284
16.1 共同外链问题 284
16.2 s[0no0]w包简介 285
16.2.1 运行s[0no0]w代码 285
16.2.2 分析s[0no0]w代码 287
16.2.3 可以获得多少倍的加速 287
16.2.4 扩展案例:K均值聚类 288
16.3 借助于C 290
16.3.1 利用多核 [1机1] 器 291
16.3.2 扩展案例:利用OpenMP解决共同外链问题 291
16.3.3 运行OpenMP代码 292
16.3.4 OpenMP代码分析 293
16.3.5 其他OpenMP指令 293
16.3.6 GPU编程 294
16.4 普遍的性能考虑 295
16.4.1 开销的来源 295
16.4.2 简单并行程序,以及那些不简单的 296
16.4.3 静态和动态任务分配 297
16.4.4 软件炼金术:将一般的问题转化为简单并行问题 299
16.5 调试R语言并行计算的代码 299
附录A 安装R 300
附录B 安装和使用包 301
 编辑推荐

R是一种用于统计计算与做图的开源软件,同时也是一种编程语言,它广泛应用于企业和[0学0]术界的数据分析[0领0]域,正在成为通用的语言之一。由于近几年数据挖掘、[0大0]数据等概念的走红,R也越来越多地被人关注。截至本文完成之日,CRAN()上共有4383个包,涉及统计、化[0学0]、经济、生物、医[0学0]、心理、社[0会0][0学0]等各个[0学0]科。不同类型的公司,比如Google、辉瑞、默克、美[0国0]银行、洲际酒店集团和壳牌公司都在使用它,同时以S语言环境为基础的R语言由于其鲜明的特色,一出现就受到了统计专业人士的青睐,成为[0国0]外[0大0][0学0]里相[0当0]标准的统计软件。
一直以来,[0国0]内外关于R语言的著作都是以统计[0学0]专业的视角来介绍R语言的,对R语言本身的特性讲解得并不详尽,而软件自带的官方文档又显得过于技术,不那么亲民。另一方面,很多接触R的朋友都来自非计算 [1机1] 专业,没有接受过编程训练,他们使用R的时候,编写出来的代码通常只能算是一条条命令的集合,面对更复杂的问题,常常束手无策。记得在某届R语言[0大0][0会0]上,有位SAS阵营的朋友说,他看到演讲者所展示的代码里只有函数调用,没有编程的东西,所以他觉得R不能算一种编程语言。其实,他错了,此时你手里这本书,覆盖了其他[0大0]部分R语言图书没有涉及的编程主题。这本书就如同R语言的九阳神功秘籍,[0当0]神功练成,任督二脉一旦打通,再[0学0]习针对某一[0领0]域应用的函数或包就如庖丁解牛一般。顺便提一下,据微博上的小道消息,前面提到的那位朋友近也开始[0学0]R了。
本书的特点表现在以下几个方面:
,对读者的统计[0学0][0知0]识和编程水平要求并不高。与很多R语言书籍不同,这本书并不需要很深的统计[0学0]功底,它从纯语言的角度入手来讲解R。对于有一定编程经验却没什么统计[0学0]背景的人来说,读这本书[0会0]比较顺[0畅0],读者就可以重点关注R语言的特性在数据分析方面的应用。在有的地方,作者也[0会0]提醒那些有其他语言编程经验的人应该注意R语言有什么不同之处。而对于没有编程经验又想使用R做数据分析的人来说,这本书也是[0学0]习编程的教材。
[0第0]二,专注于R语言编程。作者没有把这本书定位为菜谱式的手册,也不像有些R语言图书那样介绍完统计[0学0]某方面应用之后简单地把R语言代码摆出来。翻开这本书的目录,你几乎看不到统计[0学0]的术语。本书系统介绍了R语言的各种数据结构和编程结构、面向对象编程方[0法0]、socket网络编程、并行计算、代码调试、程序性能提升以及R语言与其他语言的接口等主题。书中也提到了不少编程的小技巧,这都是作者多年编程经验的总结。
[0第0]三,丰富的案例分析。作者Matloff教授是位计算 [1机1] 科[0学0]家,同时也是位统计[0学0]家,有多年的教[0学0]经验,也做过统计[0学0]方[0法0]论的顾问。除了正文中的例子之外,本书还有44个扩展案例,很多案例源自作者亲身参与过的咨询项目。虽然本书没有讲解任何统计模型,但是扩展案例都是和数据分析相关的,比如对鲍鱼数据的重[亲斤]编码([0第0]2章)、寻找异常值([0第0]3章)、文本词汇索引([0第0]4章)、[0学0]习中文方言的辅助工具([0第0]5章)等。通过[0学0]习这些案例,读者不仅能[0学0]到R语言的每种概念如何运作,也[0会0][0学0]到如何把这些概念组合到一起成为有用的程序。比如[0第0]10章介绍了socket网络编程之后,就用一个扩展案例讲解如何用socket实现并行计算,这为[0第0]16章详细讲解并行计算做好了铺垫。在很多案例里,作者讨论了好几种设计方案,并比较了这几种方案的不同之处,以回答“为什么这样做”,这对于缺少编程经验的人来说,是非常好的安排。
本书[0第0]1章简要介绍了R语言的几种数据结构和编程基础,其余章节可分为三[0大0]部分。
部分([0第0]2~6章)详细介绍R的几种主要的数据结构:向量、矩阵、列表、数据框和因子等。对很多人来说,R复杂多变的数据结构真的是一只拦路虎。而本书从简单的向量开始,一步一步引导读者认识并掌握各种数据结构。
[0第0]二部分([0第0]7~13章)涉及编程方面:编程结构和面向对象特性、输入/输出、字符串处理以及绘图。值得一提的是[0第0]13章,这章主要讲解的是R语言的调试。很多朋友在实际工作中有这样的经历,你可能用了一个小时就写好代码,却用了一天的时间来调试。可是到目前为止还没有在其他图书上看到与R语言调试相关的内容,甚至也很少见到关于其他编程语言调试的图书。本书刚好填补了这方面的空白。如果读者仔细读完[0第0]13章,并实践其中的调试技巧,一定能事半功倍,也就能少熬点儿夜,有延长寿命的功效。本书的作者同时也著有《调试的艺术》(TheArt of Debugging),相信他在R语言调试方面的功力也是相[0当0]深厚的。
[0第0]三部分([0第0]14~16章)介绍的是更高级的内容,比如执行速度和性能的提升([0第0]14章)、R语言与C/C++或Python混合编程([0第0]15章)以及R语言并行计算([0第0]16章),虽然后一部分属于编程的高级内容,但如果读者从前往后一直[0学0]下来,随着能力的提高,也是可以读懂的。
本人从2007年开始接触R语言,那时候市面上几乎没有R语言方面的书籍。[0当0]时我关于R语言的所有信息几乎都是来自统计之都()和谢益辉的博客()。2008年冬天,统计之都成功举办了“届中[0国0]R语言[0会0]议”,来自各地的R语言用户们齐聚一堂,交流心得。从那以后,每年的R语言[0会0]议都[0会0]在北京和上海举办。这几年来,统计之都的队伍也逐渐壮[0大0],比如本书的其他三位主要译者:邱怡轩、潘岚锋和熊熹,[0当0]年他们参加R语言[0会0]议的时候还是人[0大0]统计[0学0]院[0大0]一、[0大0]二的[0学0]生,后来也成为R语言社区的[0领0]军人物。去年我们接到本书的翻译任务时,他们三人分别收到了美[0国0]普度[0大0][0学0]、爱荷华州立[0大0][0学0]以及明尼苏达[0大0][0学0]的录取通[0知0],现在已经在美[0国0]留[0学0]深造。希望有越来越多的人加入统计之都的[0大0]家庭,和[0大0]家一起成长,为中[0国0]统计事业的发展尽自己的一份力。
在翻译过程中,几位译者力求忠实于原文,但纠正了原书的几处错误,同时也兼顾中文表达的流[0畅0],不过译文中可能仍有不[0当0]之处,欢迎读者予以指正。
除了本人以及前面提到的三位译者之外,统计之都的三位老朋友林宇、严紫丹和程豪也参与了本书部分章节的校审和初稿翻译,在此表示感谢。全书译文后由本人统稿,如有错误之处,均由本人承担。
也感谢 [1机1] 械工业出版社的吴怡编辑,她给予了我们细心的帮助。
统计之都的图书出版栏目(网址是)有本书的页面,读者可以在这里下载本书的数据和代码,也可以留言提问。


用户评价

评分

评分

评分

评分

评分

评分

评分

评分

评分

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有