前言
一、本书目的
数据可视化是基于现代视觉设计和人机交互理论,将数据或信息以生动又简洁的形式呈现,进而通过多样的叙述手段增强决策者认知的新兴技术,也是数据挖掘、计算机图形学和用户交互设计融合的前沿交叉学科。一方面,数据可视化技术不断演进,从科学计算的可视化走向信息与知识的可视化,从静态单维的数据展现转向动态多维数据的交互,推动数据看板、数据大屏、知识图谱等创新应用不断涌现;另一方面,用户和产业的迫切需求也指引着数据可视化人才的培养方向。当前,从政府到企业,各类组织中的信息系统越来越多,系统积累的数据量与日俱增,从数值型数据到文本数据、网络数据,数据形态纷繁多样,急需利用数据可视化技术为管理决策者缩放不同粒度的数据结构,展现数据之间的复杂关系,帮助决策者实时洞察数据驱动。
进入数据资源爆发增长、依托“数据+分析”技术增强决策的新时代,以R为代表的开源数据分析软件及衍生的众多可视化包为将海量充满噪声的数据转变为形象且易于理解的决策图表提供了强大的工具支撑。为响应来自产业侧日益迫切的数据可视分析人才需求,北京邮电大学经济管理学院在“大数据管理与应用”本科方向开设了“R语言与数据可视化”专业必修课。本书即配套该门课程的教材,旨在促进学生掌握数据可视化理论、方法及相关技术,使学生具备多源异构数据可视化的技能。本书还要求学生掌握和理解重要的基础概念,熟悉常用数据可视化包的安装与使用,具备独立完成数据可视化方案设计与开发的能力。
由于开源软件的飞速发展与广泛应用,基于R语言的数据分析与可视化实践发展很快,如何既能适应初学者入门的学习要求,又能向R语言爱好者展现该领域的最新技术,是每一位授课教师颇为费神且亟待解决的问题。与其他同类书籍相比,本书在三个方面有所改进。
一是内容与时俱进,体系完整。全书以R+RStudio开发环境为载体,不仅介绍了基础的R语言数据结构及主要语法,也介绍了以tidyverse包为代表的整合性一站式数据分析流程与工具。这样的逻辑体系不仅能帮助读者了解传统的R数据分析与可视化包的功能与使用,还能帮助其掌握新一代向量式并行运算、管道化数据操作的R代码实践应用。本书从数据呈现的两个途径,即偏向数据感知的可视化和侧重数据认知的故事化入手,分别介绍了数据静态和动态交互图表的常用方法与工具、数据自动化报告和数据看板的制作与开发工具等。同时,本书还阐明了不同R可视化包的特点、最新功能、应用场景与最新范例,以帮助读者跟上可视化技术发展的步伐,学习前沿、实用的技术。
二是篇章模块组合,形式交互。为满足不同类型读者的学习需求,全书分为方法篇和应用篇,其中,方法篇包括第1~14章,共划分为5个模块,且同一模块内的各章衔接紧凑、内容关联,模块间松散耦合、承接有序。读者既可以按章节顺序阅读,也可以分模块选择查看。此外,本书的精简版互动多媒体电子书托管在腾讯云服务器上,学生可以通过手机、平板电脑、PC等多种终端浏览访问。这种方式一方面便于读者随时随地学习,另一方面可大大提升读者的学习主动性与参与性。
三是讲练案例嵌入,知行合一。本书方法篇的14章内容中穿插有小型示例讲解,同时附有对应代码、输出结果解释。应用篇的3章内容则以真实问题为导向,通过大型实践案例的讲解,让学生“在干中学,在学中练”,从而培养学生理论联系实际的能力以及数据驱动的思维。
二、全书框架
近十年以来,R语言及其催生的第三方包发展十分迅速,截至2022年2月,全球最大的第三方R包托管地——CRAN(The Comprehensive R Archive Network)上已托管发布R包18 971个,功能介绍中包含visualization关键词的R包就有213个之多。为适应R语言的快速发展,贴近R语言的前沿应用动态,本书内容涵盖R语言数据分析与可视化两方面,由方法篇(第1~14章)和应用篇(第15~17章)构成。方法篇侧重介绍R语言基本语法、数值数据和文本数据分析流程与工具、数据可视化设计方法与工具、自动报告与数据看板生成方法与工具。应用篇通过3个大型案例的完整讲解,帮助读者综合应用R包完成不同情境下的分析与可视化任务。全书的章节框架与知识体系如图1所示。
图1 全书的章节框架与知识体系
全书分为方法篇和应用篇。方法篇包括第1~14章,其中,第1章为R语言概述,第2章为R语言基本对象,第3章为数据操作与控制,第4章为数据整形及处理,第5章为数据建模及分析,第6章为文本分析概要,第7章为字符处理及词语分析,第8章为文本的语义和情感分析,第9章为数据可视化设计,第10章为静态图表工具与设计,第11章为动态交互图表工具与设计,第12章为Rmarkdown与自动化报告,第13章为Bookdown包与长文档编排,第14章为dashboard与数据看板制作。各章内容如下。
第1章首先简要介绍大数据时代的数据分析流程,让读者了解数据分析的主要步骤与常用工具;其次,介绍R语言发展历程及其主要特点;最后,介绍R及RStudio的客户端和服务器端安装、使用与卸载方法,常用的R包及典型功能等。
第2章首先介绍R语言常用的4种数据类型(数值型、字符型、逻辑型、复数型);其次,介绍R语言中用于存储数据的5种常用对象(向量、矩阵、数组、数据框和列表);最后介绍不同数据类型的判别与转换。
第3章首先介绍不同类型数据的输入、输出及常用的R包;其次,介绍R语言中算数运算符、逻辑运算符等操作符和自定义函数的使用,以及R语言的2种循环控制结构和3种条件控制结构;最后介绍R连接数据库的2种常用方法及操作技巧。
第4章首先介绍整洁数据的定义和tibble格式数据集的特点;其次,重点介绍用于数据整形的tidyr包、用于数据转换的dplyr包以及主要函数的使用技巧;最后以某跨国公司订单数据集为例,对如何综合使用tidyr和dplyr包完成数据的探索性分析进行说明。
第5章首先介绍不同类型因变量对应的回归分析方法,帮助读者了解常见回归分析方法的典型适用情境;然后,分别介绍多元线性回归、logistic回归、probit回归、多类别回归、多类别定序回归、泊松回归和负二项回归等7种回归分析的数据建模步骤以及R包操作技巧。
第6章首先简要介绍文本分析的概念和重要性以及与数值数据的异同,使读者对文本分析有一个初步的了解;其次,介绍文本分析的基本流程;最后分别介绍文本数据预处理、文本特征提取、文本分析的常用方法。
第7章首先介绍如何在R语言环境中导入不同格式的文本文件,以及如何对文本原始数据进行预处理;然后,介绍如何完成中文文本分词,以及如何对单个高频热词和多个高频共现热词进行词频统计分析。
第8章首先介绍文本的向量化以及基于词袋模型和词嵌入模型的向量化表征差异;其次,介绍基于词嵌入模型的分布式表征及应用、基于词袋模型的文本主题建模方法与典型应用;最后介绍文本情感分析的常用方法。
第9章首先简要介绍数据可视化的内涵及特点;其次,介绍8种不同类型的数据可视化图表及其常见用例,以及图表类型的选择方法;最后介绍数据可视化的样式调整。
第10章首先简要介绍常用的可视化包ggplot2;其次,介绍ggplot2包的具体使用方法并给出使用案例;最后介绍商用可视化包bbplot的应用范例及代码技巧。
第11章首先介绍动态交互图表的交互模式和相应特点;然后介绍常用的绘制动态交互图表的工具包recharts,并给出具体案例演示。
第12章首先简要介绍可重复性研究和文学化编程、Rmarkdown和Knitr包以及使用这两个包实现自动化报告输出的流程;其次,介绍R语言自动化报告输出常用包Rmarkdown和Knitr的用法;最后介绍Rmarkdown包的3个重要组成部分,即Markdown文本、代码段和YAML文件头的语法和参数设置。
第13章首先简要介绍Bookdown包的特点及其与Rmarkdown包的不同之处;其次,介绍Bookdown包的基本配置、编排技巧、YAML文件头参数设置以及内容交叉引用;最后结合第12章的报告自动化输出,以流程图的方式展示了应用Bookdown包输出学术论文或科研报告的步骤。
第14章主要介绍如何使用dashboard制作数据看板。首先简要介绍数据看板的内涵、数据看板的3种分类及典型应用场景;其次,介绍shiny的概念与如何使用shiny创建数据看板,以及如何应用shinydashboard、flexdashboard简化数据看板的制作。
应用篇包括第15~17章,其中,第15章为数值型数据分析案例,第16章为文本型数据分析案例,第17章为数据产品开发与部署案例。各章内容如下。
第15章首先提出研究问题,确定数据分析的目的,简要介绍案例背景和数据来源;其次,介绍数据预处理的缺失值处理和数据类型转换两个过程;最后选取合适的建模方法并得出分析结果。
第16章首先介绍案例背景和数据集;其次,介绍文本数据读取和预处理的步骤和方法;最后介绍文本数据分析的几种重要手段和模型,包括文本聚类、主题模型、情感分析等。
第17章主要介绍R语言环境下的数据产品开发与公有云部署实例,主要内容包括:Ubuntu操作系统基本指令、公有云服务器必要软件环境安装与配置、RStudio Server的安装与配置、在云端部署数据产品的步骤与技巧。