豆瓣
扫码直接下载
读过 R语言编程
我发现近几年出现的R语言新技术很少有人问津,绝大多数R语言的教师和学习者,以及教材、博客文章仍在沿用那些过时的、晦涩的R语法,对R语言的印象仍停留在几年前:语法晦涩难懂、速度慢,做统计分析和绘图还行,没有统一的机器学习框架,无法用于深度学习、大数据、工业部署等。 有感于此,我想写一本用新R的技术,方便新手真正快速入门R语言编程的书,来为R语言正名。我是名大学数学教师,热爱编程、热爱R语言,奉行终身学习的理念,一直喜欢跟踪和学习新知识、新技能。我对编程和R语言有一些独到的理解,因为我觉得数学语言与编程语言是相通的,都是用语法元素来表达和解决问题,我想把这些理解和体会用简洁易懂的方式表达出来。 希望这本书能让你学到正确的编程思想,学到新的R语言编程知识和编程思维,能真正让你完成R语言入门或将R知识汰旧换新。 本书的目标读者: 没有R语言基础,想要系统地学习R语言编程,特别是想要学习新兴R技术的人。 具备一定的R语言基础,想升级R语言编程技术的人。想要理解编程思想,锻炼向量化编程思维、函数式编程思维,以及想要真正掌握数据思维的人。 想要以R语言为工具,从事统计分析、数据挖掘、机器学习工作的人,特别是想学习使用机器学习包(tidymodels 和 mlr3verse )的人。 高校里对R语言及相关课程有需求的师生及科研人员,特别是将来想要在时间序列、金融、空间数据分文本挖掘等领域使用 fpp3、modeltime、tidyquant、sf、quanteda 等包的人。 本书内容安排: 本书的结构是围绕如何学习R语言编程来展开的,全书内容共分为6章,冯国双老师在《白话统计》中写道: “一本书如果没有作者自己的观点,而只是知识的堆叠,那么这类书是没有太大价值的。” 尤其在当前网络发达的时代,几乎任何概念和知识点都可以从网络上查到。但有一点你很难查到,对于编程书来说,那就是编程思维。本书最大的特点之一就是无论是讲编程思想还是讲编程语法知识点,都把编程思维融入进去。 很多人学编程始终难以真正入门,学习编程语言要在编程思想的指导下才能事半功倍。本书的导语就先来谈编程思维,包括如何理解编程语言,用数学建模的思维引领读者从理解实际问题到自己写代码解决问题,了解R语言的编程思想 (面向函数、面向对象、面向向量)。 第1章讲述R语言编程的基本语法,同时涉及向量化编程、函数式编程。这些语法在其他编程语言中也是相通的,包括搭建R语言环境以及常用数据结构(存放数据的容器),例如向量、矩阵、数据框、因子、字符串(及正则表达式)、日期时间,此外还涉及分支结构、循环结构、自定义函数等。这些基本语法是编写R代码的基本元素,学透它们非常重要,只有学透它们才能将其任意组合、恰当使用,以写出解决具体问题的R代码。同样是讲R语言的基本语法,本书的不同之处在于,用 tidyverse 中更一致、更好用的相应包加以代替,例如用 tibble 代替 data.frame 、用forcats包处理因子、用stringr 讲字符串(及正则表达式)、用lubridate 包讲日期时间、在循环结构中用purrr包的 map_*系列函数,另外还特别讲到泛函式编程。 第2章正式进入 tidyverse 核心部分,即数据操作。本章侧重讲解数据思维,先简单介绍 tidyverse包以及编程技术之管道操作,接着围绕各种常用数据操作展开,包括数据读写(各种常见数据文件的读写及批量读写、用R连接数据库、中文编码问题及解决办法),数据连接(数据按行/列拼接、SQL数据库连接),数据重塑(“脏”数据变“整洁”数据,长宽表转换、拆分与合并列),数据操作(选择列、筛选行、对行进行排序、修改列、分组汇总)、其他数据操作(按行汇总、窗口函数、滑窗迭代、整洁计算),以及data.table 基本使用(常用数据操作的 dplyr 语法与data.table 语法对照)。tidyverse 最大的优势就是以“管道流”和“整洁语法”操作数据,这些语法真正让数据操作从Base R的晦涩、难记、难用,到tidyverse 的“一致”“整洁”、好记、好用,甚至比Python的pandas 还好用!为了最大限度地降低理解负担,本书特意选用中文的学生成绩数据作为演示数据,让读者只关心语法就好。另外的这些tidyverse数据操作,实际上已经在语法层面涵盖了日常Excel数据操作、SQL数据库操作,活用 tidyverse数据操作语法已经可以完成很多常见任务。 第3章,可视化与建模技术。可视化只介绍流行的可视化包 ggplot2 ,先从ggplot2 的图层化绘图语法开始,依次介绍 ggplot2 的几大部件:数据、映射、几何对象、标度、统计变换、坐标系、位置调整分面、主题、输出;接着介绍功能上的图形分类:类别比较图、数据关系图、数据分布图、时间序列图、局部整体图、地理空间图和动态交互图,对每一类图形分别选择其中有代表性的用实例加以演示。建模技术包括二项内容: (1)用 broom包提取统计模型结果为整洁数据框,方便后续访问和使用;(2)modelr 包中一些有用的辅助建模函数;(3)批量建模技术,例如要对各地区的数据分别建立模型、提取模型结果,实现。当然这可以用 for 循环实现,但这里采用更加优雅的分组嵌套以及 mutate+map_*实现。 第4章,应用统计。R语言是专业的统计分析软件,广泛应用于统计分析与计算领域。本章将从4个方面展开:(1)描述性统计,介绍适合描述不同数据的统计量、统计图、列联表; (2)参数估计,主要介绍点估计与区间估计,包括用Bootstrap法估计置信区间,以及常用的参数估计方法(最小二乘估计、最大似然估计);(3)假设检验,介绍假设检验原理,基于理论的假设检验(以方差分析、卡方检验为例,并用整洁的 rstatix 包实现),以及基于重排的假设检验(以t检验为例,用 infer包实现); (4)回归分析,从线性回归原理、回归诊断,借助具体实例讲解多元线性回归的整个过程,并介绍广泛应用于机器学习的梯度下降法以及广义线性模型原理。 第5章,探索性数据分析。主要讨论三方面内容: (1)数据清洗,包括缺失值探索与处理、异常值识别与处理; (2)特征工程,包括特征缩放(标准化、归一化、行规范化、数据平滑)、特征变换(非线性特征、正态性变换、连续变量离散化)、基于PCA的特征降维; (3)探索变量间的关系,包括分类变量之间、分类变量与连续变量之间、连续变量之间的关系。 第6章,文档沟通,讨论如何进行可重复研究,用R Markdown家族生成各种文档,介绍R markdown的基本使用,R与Latex交互编写期刊论文、PPT、图书、R与Git/GitHub交互进行版本控制、用R Shiny轻松制作交互网络应用程序(Web App) 以及开发和发布R包的工作流程。 附录部分是对正文内容的补充和扩展,分别介绍R6类面向对象编程、错误与调试、用R实现Excel中的VLOOKUP与透视表、非等连接与滚动连接、R与网络爬虫、R与高性能计算、R机器学习框架——mIr3verse 和 tidymodels。 大家可以根据自己的需求选择阅读的侧重点,不过我还是希望你能够按照顺序完整地阅读,这样才能彻底地更新一遍你的R知识,避免将Base R与 tidyverse混用,因为二者在编写R代码时不是一种思维,强行搭在一起反而效率低。引自 前 言
> 异步图书的所有笔记(105篇)
表示其中内容是对原文的摘抄