数据-R语言-图表-决策-Linux-Python

R语言数据科学第五章:数据操作dplyr(上)

2019-05-29  本文已影响0人  佛系分析师

超级好用的dplyr, 让你从数据小白跨出一大步。

以下内容主要来自 R for data science 书第五章内容前半部分,主要讲几个基本命令(filterarrangeselectmutatesummarise)的操作。

1.载入需要的R包

library(tidyverse) #dplyr包已经被整合入tidyverse包
library(nycflights13) #载入这个包主要是用里面的示例数据做分析

2.使用命令

3.filter

过滤样本,可结合逻辑变量一起使用:

#筛选出1月1号的航班
filter(flights, month==1, day==1)
#筛选出1月或2月的航班
filter(flights, month==1 | month==2)
#筛选出不在1月或2月的航班
filter(flights, !(month==1 | month==2))

4.arrange

排序。

#按时间顺序由前到后排序
arrange(filter, year, month, day)
#按航班延误时间有多到少排序
arrange(flights, desc(arr_delay))

5.select

按变量名选择子数据框

#选取变量名以“d”开头的变量
select(flights, ends_with("d"))
#选取变量名以“time”结尾的变量
select(flights, ends_with("time"))
#选取变量名中包含“dep”的变量
select(flights, contains("time"))
#使用正则表达式选取变量名以“d”开头的变量
select(flights, matches("^d"))

关于正则表达式的概念,以后会详细讲解。

rename()可直接对变量重命名。如:
rename(flights, mon = month)

6.mutate

增加新的变量。可对已有变量进行数学计算后生成新变量。

# 使用航班到达时间减去航班出发时间生成航班运行时间变量。
mutate(flights, use_time = arr_time - dep_time)

transmute只保留新生成的变量。如:

transmute(flights, use_time = arr_time - dep_time)

7.summaries

获得变量的汇总统计结果(均值,最大值,最小值,方差等),常和groupby一起使用,获得不同分组的汇总统计结果

#计算航班平均延误时间
summarise(flights, mean(dep_delay, na.rm=TRUE))
#计算航班每月的平均延误时间
flights %>% group_by(month) %>% summarise( mean(dep_delay, na.rm=TRUE))

这里出现了一个新的符号%>%,是dplyr专用的。我们称之为管道符,功能类似于shell中的|,作用是讲前面的变量传递到后面使用。
这个功能最大的好处是减少代码运行过程中生成的中间变量

na.rm = TRUE 是R中常用的命令,在apply函数中也经常用到。作用是计算时不考虑缺失数据。

上一篇 下一篇

猜你喜欢

热点阅读