目录

1 readr读取数据

2 读取EXCEL数据

3 读取SPSS\SAS\STATA数据

 4 缺失值的识别与处理

4.1 缺失值

4.2 异常值

4.3 dlookr数据处理包

5 数据相关性


1 readr读取数据

install.packages("readr")

readr包中主要函数

函数名

读取格式

read_csv()

导入逗号分割的文件

read_csv2()

导入以分号为分隔符的.csv文件

read_delim()

通过delim参数指定分隔符

read_tsv()

制表符为分隔符

read_table()

空格为分隔符的文件

#注: 可以使用system.time()函数来测试时间

2 读取EXCEL数据

install.packages("readxl")
  • read_excel()
  • read_xls()
  • read_xlsx()

默认读取的是第一个sheet,可以进行指定:

read_excel(data,sheet="123")

3 读取SPSS\SAS\STATA数据

在R语言中使用haven包读取其他统计软件的数据

  • read_sas()——读取SAS数据
  • read_sav()——读取SPSS数据
  • read_dta()——读取STATA数据

使用write_sas()\write_sav()\write_dta()进行转化,括号里第一个参数是数据集,第二个是路径:path="123.xxx"

数据探索是数据分析项目中非常重要的步骤,用于对数据进行全面了解,进而从数据中发现有价值的信息。数据探索的内容包括数据的清洗、缺失值的识别与转换,极端值的识别与处理、数据的分布、数据之间的关系分析。

 4 缺失值的识别与处理

R语言提供了很多缺失值工具,如下:

  • VIM: 可以可视化
  • naniar:更加高校
  • missMDA: 多变量缺失值处理办法
  • Amelia: bootstrap+EM算法处理缺失值
  • mice: 有回归树、随机森林、逻辑回归等算法填补缺失值
  • missForest: 随机森林填补缺失值

4.1 缺失值

在R中,缺失值以NA形式出现,可用is.na进行判断,但是如果数据量太大,就不太好找了(不缺失为FALSE,缺失为TRUE)

  • 使用VIM的aggr()函数可以进行可视化展示
  • 使用na.omit()可以删除缺失数据及其所在行
  • 使用naniar包中的impute_mean_all()或者impute_median_all()函数进行填补
  • 使用KNN()函数进行填补
  • 使用regressionImp()进行填补,函数左为回归模型参数,~左边是需要填补的特征,右边是用于建立回归模型的特征,缺失值较多则使用robust回归。
  • 使用mice包中地方mice()函数进行随机森林填补
  • 使用missMDA包的estim_ncpPCA()函数进行缺失值处理(主成分分析)

4.2 异常值

异常值的定义无须赘述,主要的识别方法是通过绘图,即数据出图后识别异常值。

  1. 使用boxplot_stats()进行识别单变量异常值
  2. 使用lm()构建回归模型,用cooks.distance()计算cook距离,该距离大于平均值的4倍则可归为异常值

4.3 dlookr数据处理包

根据介绍,是一个很强大的数据处理包。

诊断函数:

  • diagnose() 提供变量的基本诊断信息
  • dignose_category() 提供分类变量的诊断信息
  • dignose_numeric() 提供数值变量的诊断信息
  • dignose_outlier() 和plot_outlier() 提供异常值的诊断与可视化
  • dignose_report() 生成诊断报告

例如 创建诊断报告: diagnose_report(data, output_format="html)

数据处理函数:

  • find_na() 寻找缺失值
  • find_outliers() 寻找异常值
  • summary.imputation() 填补情况的统计
  • transform() 数据转换
  • binning bining_by() 数据分箱
  • find_skewness() 寻找有偏变量
  • transformation_report() 用于生成数据处理报告

详细的使用在此不进行一一列举,可使用help函数进行查询。

5 数据相关性

本书关于相关性分析并没有详细的阐述,在此简单列举内容。

  • 使用cor()函数计算相关性
  • 使用cor.test()函数进行相关系数的检验
  • 使用corrplot函数绘制相关系数的图
  • 使用chart.Correlation绘制相关系数直方图