R语言扩展包dplyr

R语言扩展包dplyr——数据清洗和整理
该包主要用于数据清洗和整理,coursera课程链接:Getting and Cleaning Data

也可以载入swirl包,加载课Getting and Cleaning Data跟着学习。

如下:

library(swirl)
install_from_swirl("Getting and Cleaning Data")
swirl()

此文主要是参考R自带的简介:Introduce to dplyr

1、示范数据

library(nycflights13)
dim(flights)
[1] 336776 16
head(flights, 3)
Source: local data frame [3 x 16]

year month day dep_time dep_delay arr_time arr_delay carrier tailnum flight origin dest air_time
1 2013 1 1 517 2 830 11 UA N14228 1545 EWR IAH 227
2 2013 1 1 533 4 850 20 UA N24211 1714 LGA IAH 227
3 2013 1 1 542 2 923 33 AA N619AA 1141 JFK MIA 160
Variables not shown: distance (dbl), hour (dbl), minute (dbl)

2、将过长的数据整理成友好的tbl_df数据

flights_df <- tbl_df(flights)
flights_df

3、筛选filter()

filter(flights_df, month == 1, day == 1)
Source: local data frame [842 x 16]

year month day dep_time dep_delay arr_time arr_delay carrier tailnum flight origin dest air_time
1 2013 1 1 517 2 830 11 UA N14228 1545 EWR IAH 227
2 2013 1 1 533 4 850 20 UA N24211 1714 LGA IAH 227
筛选出month=1和day=1的数据
同样效果的,

flights_df[flights_dfmonth == 1 & flights_dfday == 1, ]

4、选出几行数据slice()
slice(flights_df, 1:10)

5、排列arrange()

arrange(flights_df, year, month, day)
将flights_df数据按照year,month,day的升序排列。
降序

arrange(flights_df, year, desc(month), day)
R语言当中的自带函数

flights_df[order(flightsyear, flights_dfmonth, flights_dfday), ] flights_df[order(desc(flights_dfarr_delay)), ]

6、选择select()
通过列名来选择所要的数据

select(flights_df, year, month, day)
选出三列数据
使用:符号
select(flights_df, year:day)
使用-来删除不要的列表

select(flights_df, -(year:day))

7、变形mutate()
产生新的列

mutate(flights_df,

  •    gain = arr_delay - dep_delay,
    
  •    speed = distance / air_time * 60)
    

8、汇总summarize()
<pre name="code" class="html">> summarise(flights,

  •       delay = mean(dep_delay, na.rm = TRUE)
    

求dep_delay的均值

9、随机选出样本

sample_n(flights_df, 10)
随机选出10个样本
sample_frac(flights_df, 0.01)
随机选出1%个样本

10、分组group_py()

by_tailnum <- group_by(flights, tailnum)

确定组别为tailnum,赋值为by_tailnum

delay <- summarise(by_tailnum,
count = n(),
dist = mean(distance, na.rm = TRUE),
delay = mean(arr_delay, na.rm = TRUE))

汇总flights里地tailnum组的分类数量,及其组别对应的distance和arr_delay的均值

delay <- filter(delay, count > 20, dist < 2000)
ggplot(delay, aes(dist, delay)) +
geom_point(aes(size = count), alpha = 1/2) +
geom_smooth() +
scale_size_area()

结果都需要通过赋值存储

a1 <- group_by(flights, year, month, day)
a2 <- select(a1, arr_delay, dep_delay)
a3 <- summarise(a2,
arr = mean(arr_delay, na.rm = TRUE),
dep = mean(dep_delay, na.rm = TRUE))
a4 <- filter(a3, arr > 30 | dep > 30)

11、引入链接符%>%
使用时把数据名作为开头,然后依次对数据进行多步操作:

flights %>%
group_by(year, month, day) %>%
select(arr_delay, dep_delay) %>%
summarise(
arr = mean(arr_delay, na.rm = TRUE),
dep = mean(dep_delay, na.rm = TRUE)
) %>%
filter(arr > 30 | dep > 30)
前面都免去了数据名

若想要进行更多地了解这个包,可以参考其自带的说明书(60页):dplyr
————————————————
版权声明:本文为CSDN博主「Eunice_33」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011253874/article/details/43022835

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容