R语言学习笔记总结
R语言初步-探索性数据分析-EDA
探索性数据分析:(exploratory data analysis) ,简称EDA。
用可视化的方法和数据转换来系统化探索数据
是一个可迭代的循环过程
是一种思考逻辑
- 对数据提出问题
- 对数据进行可视化、转换和建模,找出问题的答案
- 使用上一个步骤的结果精炼问题,提出新的问题
- ...
包括可视化、数据转化、建模三个部分
可以用于数据清洗
library(tidyverse) #记得先加载所需要的包
1.对分布进行可视化表示
变量是分类变量还是连续变量?
例如之前用过的:
生成条形图,展示不同cut钻石的计数结果,cut这个参数的性质决定了它是一个分类变量,所以适合用条形图展示。
ggplot(data=diamonds)+
geom_bar(mapping=aes(x=cut))
对分布进行可视化表示 .png
条形图中的y轴是geom_bar()函数自行计算的结果,也可以用dplyr::count手动计算:
dplyr::count表示调用dplyr中的count()函数
diamonds %>%
count(cut)
#运行:
# A tibble: 5 x 2
cut n
<ord> <int>
1 Fair 1610
2 Good 4906
3 Very Good 12082
4 Premium 13791
5 Ideal 21551
再比如,有些参数就是连续性的,比如钻石的克拉数carat,所以适合用直方图展示:
直方图会对x轴进行等宽分箱,binwidth参数可以控制间隔宽度,合适的间隔宽度可以揭示不一样的数据特征。比如下面三张图片的区别:binwidth 分别等于0.5、1.0、0.1。
ggplot(data=diamonds)+
+ geom_histogram(mapping=aes(x=carat),binwidth =0.5)
binwidth=0.5
binwidth=1.0
binwidth=0.1
后台自动将分布在某区域内的钻石技术算出总和,展现在图中。如果想看到具体的图表,可以用dplyr::count()函数和ggplot2::cut_width()手动计算:
代码如下:
diamonds %>%
count(cut_width(carat,0.5))
#运行:
# A tibble: 11 x 2
`cut_width(carat, 0.5)` n
<fct> <int>
1 [-0.25,0.25] 785
2 (0.25,0.75] 29498
3 (0.75,1.25] 15977
4 (1.25,1.75] 5313
5 (1.75,2.25] 2002
6 (2.25,2.75] 322
7 (2.75,3.25] 32
8 (3.25,3.75] 5
9 (3.75,4.25] 4
10 (4.25,4.75] 1
11 (4.75,5.25] 1
如果需要用直方图的逻辑展现多组数据,那么显然直方图本身的形式不再合适,此时我们可以选择折线图,叠加的折线图直观清晰:
ggplot(data=smaller,mapping=aes(x=carat,color=cut))+
geom_freqpoly(binwidth=0.1)
#运行:生成折线图
叠加的折线图
EDA是个好东西呢