数据分析有一半以上的时间会花在对原始数据的整理及变换上,包括选取特定的分析变量、汇总并筛选满足条件的数据、排序、加工处理原始变量并生成新的变量、以及分组汇总数据等等。这一点,我想大部分使用EXCEL的童鞋都深有体会,写论文时,这么多的数据进行处理,手动汇总、筛选、变换,工作量实在是太大。而本文介绍的dplyr包简直就是Hadley Wickham (ggplot2包的作者,被称作“一个改变R的人”)大神为我们提供的“数据再加工”神器啊。
本文试图通过一个案例,对神奇的dplyr包的一些常用功能做简要介绍。在此抛砖引玉,欢迎广大盆友拍砖。先放上实践课的一个问题:航行距离与到达延误时间有什么关系?? 带着这个问题,我们将首先使用dplyr包对给出的航班数据进行处理。
1.dplyr包的安装加载与示例数据准备
1.1 安装dplyr包
脚本输入代码:
install.packages('dplyr') #加载dplyr包
library(dplyr)
1.2安装 nycflights13包,该软件包中的飞机航班数据将用于本文中dplyr包相关函数的演示。
脚本输入代码:
install.packages('nyclights13') #加载nyclights13
library(nyclights13)
flights #查看数据表
dim(flights) #查看变量的维数
输出结果如下:
如图可知,nycflights13是一个data.frame类型的对象,包含336776条数据记录、19个变量。
在处理数据之前,让我们再来回顾一下数据处理的一般步骤:
选择子集、列名重命名、删除缺失数据、处理日期、数据类型转换、数据排序
接下来,就可以进行数据处理了:
2.数据处理
2.1 选择子集
所谓选择子集,就是选择出能够实现分析目标的变量,本次数据分析的目标是得出航行距离与延误时间的关系,因此,相应的子集就是以下几个字段:
year 航班日期-年
month 航班日期-月
day 航班日期-月
dep_delay 起飞延迟时间(分)
arr_delay 到达延迟时间(分)
distance 航行里程(英里)
dest 目的地
为此,我们首先使用dpylr包里的select函数,进行变量筛选:
脚本输入代码:
myFlights <- select(flights,="" year,month,="" day,dep_delay,arr_delay,distance,dest)="">
myFlights #查看数据表
如图,子集选择完毕。