文档库 最新最全的文档下载
当前位置:文档库 › 【原创】R语言dplyr、ggplot2包画图分析案例附代码数据

【原创】R语言dplyr、ggplot2包画图分析案例附代码数据

【原创】R语言dplyr、ggplot2包画图分析案例附代码数据
【原创】R语言dplyr、ggplot2包画图分析案例附代码数据

R语言dplyr、ggplot2包画图分析案例

前言

正如前文提到的,数据分析有一半以上的时间会花在对原始数据的整理及变换上,包括选取特定的分析变量、汇总并筛选满足条件的数据、排序、加工处理原始变量并生成新的变量、以及分组汇总数据等等。这一点,我想大部分使用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 #查看数据表

如图,子集选择完毕。

2.2 列名重命名

为了让列名简单易懂,可以使用rename函数,进行列名重命名。

脚本输入代码:

myFlights <- rename(myFlights, destination = dest)

myFlights

重命名完毕。

2.3 删除缺失数据

我们采用dplyr包中的filter()函数,进行缺失数据的删除。脚本输入代码:

myFlights <- filter(myFlights,!is.na(dep_delay),!is.na(arr_delay))

myFlights

由图可知,我们首先采用is.na()函数找出缺失值,再采用逻辑运算符“!X”将限定有效数据,最后用filter()函数“过滤”得到有效数据,成功地删除了缺失数据(由原先的336,776个数据变为327,346个数据)。

2.4 数据排序

为了数据的整齐性,我们可以选择相应的变量进行排序。这里要穿插一个排序函数arrange(),默认情况下,为升序排列,也可以对列名加desc()进行降序排序。脚本输入代码:

myFlights <- arrange(myFlights, desc(arr_delay))

myFlights

如图所示,数据按照变量arr_delay(到达延迟时间(分))进行降序排列。

相关文档