1.数据处理
1.1 数据导入
将数据导入R。这实际上就是读取保存在文件、数据库或Web API 中的数
据,再加载到R 的数据框中。
1.2 数据整理
导入数据后,就应该对数据进行整理。数据整理就是将数据保存为一致的形式,以满足其所在数据集在语义上的要求。简而言之,如果数据是整洁的,那么每列都是一个变量,每行都是一个观测。整洁的数据非常重要,因为一致的数据结构可以让你将工作重点放在与数据有关的问题上,而不用再费尽心思地将数据转换为各种形式以适应不同的函数。一旦拥有了整洁的数据,通常下一步就是对数据进行转换。数据转换包括选取出感兴趣的观测(如居住在某个城市里的所有人,或者去年的所有数据)、使用现有变量创建新变量(如根据距离和时间计算出速度),以及计算一些摘要统计量(如计数或均值)。数据整理和数据转换统称为数据处理。
1.3 可视化与建模
一旦使用需要的变量完成了数据整理,那么生成知识的方式主要有两种:可视化与建模。这两种方式各有利弊,相辅相成。因此,所有实际的数据分析过程都要在这两种方式间多次重复。
- 可视化本质上是人类活动。良好的可视化会让你发现意料之外的现象,或对数据提出新的问题。你还可以从良好的可视化中意识到自己提出了错误的问题,或者需要收集不同的数据。可视化能够带给你惊喜,但不要期望过高,因为毕竟还是需要人来对其进行解释。
- 模型是弥补可视化缺点的一种工具。如果已经将问题定义得足够清晰,那么你就可以使用一个模型来回答问题。因为模型本质上是一种数学工具或计算工具,所以它们的扩展性一般非常好。即使扩展性出现问题,购买更多计算机也比雇用更多聪明的人便宜!但是每个模型都有前提假设,而且模型本身不会对自己的前提假设提出疑问,这就意味着模型本质上不能给你带来惊喜。
1.4 沟通
数据科学的最后一个步骤就是沟通。对于任何数据分析项目来说,沟通绝对是一个极其重要的环节。如果不能与他人交流分析结果,那么不管模型和可视化让你对数据理解得多么透彻,这都是没有任何实际意义的。
1.5 编程
围绕在这些技能之外的是编程。编程是贯穿数据科学项目各个环节的一项技能。数据科学家不一定是编程专家,但掌握更多的编程技能总是有好处的,因为这样你就能够对日常任务进行自动处理,并且非常轻松地解决新的问题。
2.tidyverse简介
https://www.tidyverse.org/
http://tidyverse.tidyverse.org
https://github.com/tidyverse/tidyverse
Report bugs at https://github.com/tidyverse/tidyverse/issues
tidyverse是为数据科学而设计的R软件包的自以为是的集合。 所有软件包都共享基本的设计理念,语法和数据结构。
使用以下命令安装完整的tidyverse:
2.1 安装
# Install from CRAN
install.packages("tidyverse")
# Or the development version from GitHub
# install.packages("devtools")
devtools::install_github("tidyverse/tidyverse")
2.2 加载
library(tidyverse)
#> ── Attaching packages ────────────────────────────────────────────────── tidyverse 1.2.1.9000 ──
#> ✓ ggplot2 3.2.1 ✓ purrr 0.3.3
#> ✓ tibble 2.1.3 ✓ dplyr 0.8.3
#> ✓ tidyr 1.0.0.9000 ✓ stringr 1.4.0
#> ✓ readr 1.3.1 ✓ forcats 0.4.0
#> ── Conflicts ────────────────────────────────────────────────────────── tidyverse_conflicts() ──
#> x dplyr::filter() masks stats::filter()
#> x dplyr::lag() masks stats::lag()
3 tidyverse包分类
3.1 数据导入
- readr
read_csv(); read_tsv(); read_delim(); read_fwf(); read_table(); read_log(); - readxl
read_xls(); read_xlsx(); - haven
打开SAS 、SPSS、Stata等外部数据
3.2 数据整理
- tibble
对data.frame的改进,一种数据格式 - tidyr
清洗数据 gather(); spread();
3.3 数据转换
- dplyr
处理数据 mutate();select(); filter(); summarise();arrange(); - lubridate
处理时间数据 - stringr
处理字符串类型 - forcats
处理因子变量(factors)
3.4 数据可视化
- ggplot2
R016 ggplot2(01) 图形语法
R017 ggplot2(02) 快速绘图qplot()
R018 ggplot2(03) 箱线图及小提琴图
R019 ggplot2(04) 点图与散点图
R020 ggplot2(05) 直方图,条形图
R021 ggplot2(06) 线图,密度图,qq图,ECDF图
R022 ggplot2(07) 误差图,饼图
R023 ggplot2(08) 组合图形
R027 ggplot2绘图参数 — 标题及图例
3.5 编程
- magrittr
管道运算符 - purr
通过提供一些完整连贯用于函数和向量的工具集,增强R的函数编程。