猜你喜欢
高效R语言编程

高效R语言编程

书籍作者:Colin Gillespie ISBN:9787519820855
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9630
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

关于设置R编程环境的建议。
探索一般编程概念和R的编码技术。
理解高效R工作流的组成部分。
学习在R中如何高效的读写数据。
深入探讨清理原始数据(数据木匠)的重要技巧。
使用性能分析、标准技巧和其他方法优化你的代码。
确定你用于R计算的硬件性能。
大化R协作编程的好处。
促使你从R初学者往R程序员转变。

作者简介

Colin Gillespie是英国纽卡斯尔大学的高级讲师(副教授)。他的研究领域是高性能统计计算与贝叶斯统计。他常被Jumping Rivers聘为顾问,自2005年开始讲授R语言。
Robin Lovelace是利兹学院的运输研究(ITS)与数据分析(LIDA)的研究员。Robin几年来使用R语言进行学术研究,并为各层次学生讲述了大量的R课程。Robin在多个应用项目中使用R。

编辑推荐

有许多优秀的关于可视化、数据科学和包开发方面的R资源。有成百上千零散的简介、网页和论坛讲解如何在特定的领域中使用R。直到现在,很少有人编写关于如何简单地使R更高效地工作方面的内容。这本实践经验的指南将教初学者和经验丰富的R使用者如何编写高效的R代码。
借助多年教授R课程的经验,本书作者提供了从优化安装RStudio到借助C++的优势的广泛范围的实践建议,这使得本书成为任何R使用者书架的有益补充。广泛背景的学者、商业用户和程序员都将受益于本书的指导。

前言

前言
本书可使你的 R 编程工作事半功倍,它是关于计算效率和编程效率的。现在 有着大量优秀 R 语言资源,例如可视化(如 Chang 2012)、数据科学(如 Grolemund 与 Wichham 2016)以及包开发(如 Wickham 2015)。另外还有 大量的关于 R 语言在特定领域的使用资源,包括贝叶斯统计、机器学习和地 理信息系统。然而,关于如何轻松高效地应用 R 语言的资料非常稀缺。有关 技巧、注意事项和数十年的该主题知识沉淀在大量网页、Email 讨论和论坛中 广泛流传着,但这种情况使 R 用户更难理解如何编写高效 R 代码。

在教学过程中,我们发现该状况同时存在于初学者和老手中。不管是理解避 免循环应用 R 的向量对象和如何设置你的 .Rprofile 和 .Renviron 文件的问题, 还是驾驭 R 的优秀接口提升性能,效率的概念是关键的。本书的目标是从技巧、 警告、编程诀窍中为 R 程序员提取出长久有效的单一、内聚的精华。

本书内容来自于我们的学生的问题,各种培训中不同水平的、各行各业的学 生数年来不断咨询如何使他们的 R 更快。怎样将计算机科学的通用原则(例 如不要编写同一代码,即 DRY)应用到 R 语言的具体代码中。怎样使 R 代码 融入高效流程中,包括项目启动、协作开发及简评阶段?如何才能快速学习 使用新的包或者新函数?

本书包含的 10 章内容解答了不止上述问题。每章从基本原理开始介绍,而后 逐步推进到高级内容,这样可适合不同水平的读者。然而更高级的话题(如 并行编程及 C++)可能暂时对 R 新手无任何意义,本书是采用慢开头进而打 下扎实基础的讲述方式帮助读者走完 R 语言的糟糕的陡峭学习曲线。这样即
使资深 R 用户也能从中找到先前隐藏的高明建议。在讲述这类资料时,我们 经常听到“为何以前没有人告诉我可以这样做呢 ?”

高效编程不应看成可有可无的附属品,随着项目和数据集的增大 , 高效编程的 重要性也在增加。事实上,本书是在我教基于 R 的大数据课程过程中构思出 来的,而该课程是你要处理大量数据集以及保证代码高效的必修课。即使面 对小量数据情况,快速编写运行速度快的高效代码是成功代码的必备特征。 我们发现,高效编程的概念在所有 R 社区的分区中都是非常重要的。无论你 偶尔使用 R(例如,因为它的无与伦比的统计包),还是为了开发包或者正 在开发大型的合作项目(高效是至关重要的项目),代码高效均严重影响到 你的工作效率。

最后,高效是一个事半功倍的话题。拿汽车作类比,你是想一满箱油(或者 充满电)开车驾驶 1000km,还是每 50km 就更换一辆老破旧的汽车呢?或者 你愿意选择一辆高效的汽车还是一辆自行车呢?同理,高效的 R 代码在各方 面均超越低效 R 代码:读、写、执行、分享及维护都更简单轻松。本书不可 能给出如何写出这样代码的所有答案,但它肯定提供了一些思想、实例代码 和技巧来帮助你的编程之旅有一个良好开端。

排版约定
本书使用下述排版约定。

斜体(Italic)
表示新术语、URL、电子邮件地址、文件名和文件扩展名。
黑体(Bold) 表示 R 包名。
等宽字体(Constant width) 表示程序清单,以及在段落中应用的代码片段,例如变量、函数名、数据 库、数据类型、环境变量、语句和关键字。
等宽粗体(Constant width bold) 表示命令或需用户输入的文本内容。
等宽斜体(Constant width italic) 表示需要用户提供的值或由上下文决定的值来替代的文本内容。
使用示例代码
补充材料( 代码示例、图片等) 可从以下网址下载:https:// github. com/ csgillespie/efficient。
本书的目的是帮助你完成工作。通常,你可以在你的程序和文档中使用本书 的代码。除非你要复制大量代码,否则你无需为许可联系我们。例如,使用 本书中的多个代码片段编写程序就无需获得许可。但以 CD-ROM 形式分发或 销售 O’ Reilly 书中的代码就需要我们的许可。回答问题时引用本书以及代码 例程无需许可。在你自己的项目文档使用了大量的示例代码则需要获得许可。
我们不强制要求署名,但如果这样做,我们深表感谢。署名格式一般包括 书名、作者、出版社和 ISBN 号,例如 :“Efficient R Programming by Colin Gillespie and Robin Lovelace (O’Reilly). Copyright 2017 Colin Gillespie,
Robin Lovelace, 978-1-491-95078-4”。
如果你觉得你的代码示例超出正常使用范围或者上述许可范围,请通过
[email protected] 联系我们。
O’Reilly Safari
Safari(以前的 Safari Books Online)是一个针对企业、政府、教育工作者以 及个人的会员制培训和参考平台。
订阅者可以访问来自超过 250 个出版社的大量书 籍、培训视 频、学习路 径、交互式教程,以及精选的播放列表,这些出版社包括 O’ Reilly Media、 Harvard Business Review、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Adobe、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、AdobePress、FT Press、Apress、Manning、New Riders、 McGraw-Hill、Jones & Bartlett 等。
更多信息请访问 http://orieilly.com/safari。
如何联系我们
有关本书的建议和疑问请联系出版社:
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035) 奥莱利技术咨询(北京)有限公司
这本书有专属网页,你可以在那里找到本书的勘误、示例和其他信息,请访 问:http://bit.ly/efficient-r-programming。
对本书做出评论或者咨询技术问题,发送Email至bookquestions@oreilly. com。
需要了解更多关于我们书籍、课程、大会和新闻信息,请访问我们的官方网 站:http://www.oreilly.com。
在 Facebook 上查看我们:http://facebook.com/oreilly 在 Twitter 上关注我们:http://twitter.com/oreillymedia
在 YouTube 上查看我们:http://www.youtube.com/oreillymedia
致谢
我在开放平台上编写了这本 书,很多人帮我修正了多个小问 题。特别感 谢 O’ Reilly 的本书工作人员,以及每个通过 Git Hub 的帮助者:@ Delvis、
@richelbilderbeek、@adamryczkowski、@CSJCampbell、@tktan、@nachti, Conor Lawless、@timcdlucas,Dirk Eddelbuettel、@wolfganglederer、
@HenrikBengtsson、@giocomai 和 @daattali。 感谢提出详细意见的技术审核人员:Richard Conton 和 Garrett Grolemund。
Colin
感谢 Esther、Nathan 和 Niamh,谢谢你们的耐心。
Robin
感谢我在 Cornerstone Housing Cooperative 的室友容忍我写书时的邋遢,感谢 Leeds 大学中支持我从事非常规的期刊文章和学术会议的学术工作的每个人。 感谢由开源代码的开发者、用户、传播者构成的社区的每个人,他们使这一 切成为可能。

目录

目录
前言1
第 1 章 概述7
软件要求7
读者对象和如何使用本书8
什么是效率9
R 语言的高效性10
为何需要高效?12
通用的效率技巧13
基准测试与性能测试15
图书资源20
参考文献20
第 2 章 高效安装22
软件要求23
高效 R 配置的 5 个高级技巧23
操作系统23
R 版本26
R 启动30
RStudio41
BLAS 和其他 R 解释器51
参考文献54
第 3 章 高效编程55
软件要求(配置)55
高效编程 5 个技巧55
一般性建议56
与用户交互61
因子(Factors)64
Apply 函数族66
缓存变量70
字节编译73
参考文献76
第 4 章 高效工作流77
前提条件77
高效工作流的 5 条高级技巧77
项目规划类型学78
项目规划与管理80
包的选择84
发布89
参考文献93
第 5 章 高效输入 / 输出94
软件配置95
关于数据 I/O 的 5 条高级技巧95
使用 rio 的通用数据导入95
纯文本格式97
二进制文件格式103
从因特网获取数据106
访问包中的数据107
参考文献108
第 6 章 高效数据木匠109
软件配置110
高效数据木匠的 5 条高级技巧110
高效的 tibble 数据框110
使用 tidyr 与正则表达式整理数据112
使用 dplyr 高效处理数据118
使用数据库130
使用 data.table 处理数据134
参考文献137
第 7 章 高效优化138
软件配置139
高效优化的 5 条高级技巧139
代码分析139
例子:模仿 Monopoly141
高效的基础 R143
例子:优化 move_square() 函数150
并行计算151
Rcpp154
参考文献164
第 8 章 高效硬件165
软件配置165
高效硬件的 5 条高级技巧165
背景知识:什么是字节?166
随机存取存储器167
硬盘驱动器 : HDD 与 SSD170
操作系统:32 位或 64 位171
中央处理器172
第 9 章 高效协作175
软件配置176
编码风格176
版本控制182
代码审查186
参考文献187
第 10 章 高效学习188
软件配置188
高效学习的高级 5 条技巧188
使用 R 的内部帮助189
在线资源196
提出问题198
深入学习199
传播知识201
参考文献201
附录 A 依赖包203
附录 B 参考文献205

短评

快递速度很快,东西很不错,希望能多学一点东西

2018-11-06 12:56:22

正版书,到货速度快,正视自己所需要的

2018-10-17 06:46:00

产品特色