2015-01-22 18:04 7357人阅读 评论(0) 收藏 举报
 分类:
R Programming(11) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

该包主要用于数据清洗和整理,coursera课程链接:Getting and Cleaning Data

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

如下:

  1. library(swirl)
  2. install_from_swirl("Getting and Cleaning Data")
  3. swirl()

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

1、示范数据

  1. > library(nycflights13)
  2. > dim(flights)
  3. [1] 336776     16
  4. > head(flights, 3)
  5. Source: local data frame [3 x 16]
  6. year month day dep_time dep_delay arr_time arr_delay carrier tailnum flight origin dest air_time
  7. 1 2013     1   1      517         2      830        11      UA  N14228   1545    EWR  IAH      227
  8. 2 2013     1   1      533         4      850        20      UA  N24211   1714    LGA  IAH      227
  9. 3 2013     1   1      542         2      923        33      AA  N619AA   1141    JFK  MIA      160
  10. Variables not shown: distance (dbl), hour (dbl), minute (dbl)

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

  1. > flights_df <- tbl_df(flights)
  2. > flights_df

3、筛选filter()

  1. > filter(flights_df, month == 1, day == 1)
  2. Source: local data frame [842 x 16]
  3. year month day dep_time dep_delay arr_time arr_delay carrier tailnum flight origin dest air_time
  4. 1  2013     1   1      517         2      830        11      UA  N14228   1545    EWR  IAH      227
  5. 2  2013     1   1      533         4      850        20      UA  N24211   1714    LGA  IAH      227

筛选出month=1和day=1的数据

同样效果的,

  1. flights_df[flights_df$month == 1 & flights_df$day == 1, ]

4、选出几行数据slice()

  1. slice(flights_df, 1:10)

5、排列arrange()

  1. >arrange(flights_df, year, month, day)

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

降序

  1. >arrange(flights_df, year, desc(month), day)

R语言当中的自带函数

  1. flights_df[order(flights$year, flights_df$month, flights_df$day), ]
  2. flights_df[order(desc(flights_df$arr_delay)), ]

6、选择select()

通过列名来选择所要的数据

  1. select(flights_df, year, month, day)

选出三列数据
使用:符号

  1. select(flights_df, year:day)

使用-来删除不要的列表

  1. select(flights_df, -(year:day))

7、变形mutate()

产生新的列

  1. > mutate(flights_df,
  2. +        gain = arr_delay - dep_delay,
  3. +        speed = distance / air_time * 60)

8、汇总summarize()

  1. <pre name="code" class="html">> summarise(flights,
  2. +           delay = mean(dep_delay, na.rm = TRUE)

求dep_delay的均值

9、随机选出样本

  1. sample_n(flights_df, 10)

随机选出10个样本

  1. sample_frac(flights_df, 0.01)

随机选出1%个样本

10、分组group_py()

  1. by_tailnum <- group_by(flights, tailnum)
  2. #确定组别为tailnum,赋值为by_tailnum
  3. delay <- summarise(by_tailnum,
  4. count = n(),
  5. dist = mean(distance, na.rm = TRUE),
  6. delay = mean(arr_delay, na.rm = TRUE))
  7. #汇总flights里地tailnum组的分类数量,及其组别对应的distance和arr_delay的均值
  8. delay <- filter(delay, count > 20, dist < 2000)
  9. ggplot(delay, aes(dist, delay)) +
  10. geom_point(aes(size = count), alpha = 1/2) +
  11. geom_smooth() +
  12. scale_size_area()

结果都需要通过赋值存储

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

11、引入链接符%>%

使用时把数据名作为开头,然后依次对数据进行多步操作:

  1. flights %>%
  2. group_by(year, month, day) %>%
  3. select(arr_delay, dep_delay) %>%
  4. summarise(
  5. arr = mean(arr_delay, na.rm = TRUE),
  6. dep = mean(dep_delay, na.rm = TRUE)
  7. ) %>%
  8. filter(arr > 30 | dep > 30)

前面都免去了数据名

若想要进行更多地了解这个包,可以参考其自带的说明书(60页):dplyr

R语言扩展包dplyr——数据清洗和整理的更多相关文章

  1. R语言扩展包dplyr笔记

    引言 2014年刚到, 就在 Feedly 订阅里看到 RStudio Blog 介绍 dplyr 包已发布 (Introducing dplyr), 此包将原本 plyr 包中的 ddply() 等 ...

  2. R语言数据处理包dplyr、tidyr笔记

    dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...

  3. 安装R语言扩展包diveRsity-1

    今天去了学院的运动会呢-扮熊本熊超开心-写完这篇我补上我的图么么哒 ××××××××××××文末高能预警!!!!!这个包的安装并不是本周的任务!!!!!我真是萌萌哒×××××××××××××× ××× ...

  4. 安装R语言扩展包vegan

    这周的作业我开始得好迟啊...然而还是要努力做啊... ××××××××××××××我是萌萌哒分割线×××××××××××××××××××××××××××××××××××× 首先,百度进入官方页面,看 ...

  5. R语言 ggplot2包

    R语言  ggplot2包的学习   分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...

  6. R语言重要数据集分析研究——需要整理分析阐明理念

    1.R语言重要数据集分析研究需要整理分析阐明理念? 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标 ...

  7. R语言-神经网络包RSNNS

    code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...

  8. R语言-Knitr包的详细使用说明

    R语言-Knitr包的详细使用说明 by 扬眉剑 来自数盟[总舵] 群:321311420 1.相关资料 1:自动化报告-谢益辉 https://github.com/yihui/r-ninja/bl ...

  9. 安装R语言的包的方法

    安装R语言的包的方法: 1. 在线安装 在R的控制台,输入类似install.packages("TSA")  # 安装 TSA install.packages("TS ...

随机推荐

  1. Java 始终要覆盖toString

    java.lang.Object提供了toString方法的一个实现,它包含类的名称,以及一个“@”符号,接着是散列码的无符号十六进制表示法,例如“PhoneNumber@163b91”.在实际应用中 ...

  2. JSON.stringify 语法实例讲解 (转)

    原文地址 http://www.jb51.net/article/29893.htm 谢谢 认识javascript也不短的时间了,可是这个用法说实在的,我还是第一次见过,惭愧啊惭愧啊.于是乎,在网上 ...

  3. share_ptr_c++11

    C++智能指针 shared_ptr shared_ptr 是一个标准的共享所有权的智能指针, 允许多个指针指向同一个对象. 定义在 memory 文件中(非memory.h), 命名空间为 std. ...

  4. vue中引用vux

    官网看不懂,网上搜了下,以备不时之需 这是官网说明文档,看不懂的啊. Vux使用教程: 1,在项目里安装vux cnpm install vux --save 2,在项目里安装vux-loader(这 ...

  5. jQuery 学习01——定义、安装引用、语法、选择器及事件

    什么是 jQuery ? jQuery是一个JavaScript函数库. jQuery是一个轻量级的"写的少,做的多"的JavaScript库. jQuery库包含以下功能: HT ...

  6. pygame-KidsCanCode系列jumpy-part7-游戏启动/结束画面

    通常一个游戏启动(start)或结束(game over)时,都会显示一个画面,来引导用户.这节,我们学习如何处理这块逻辑. 其实之前,我们已经预留了2个函数,只要把它实现即可: def show_s ...

  7. RealTek WiFi 模块 RTL8710AF RTL8711AF RTL8711AM RTL8195AM

    瑞昱 8710 是一个完整且自成体系的 WiFi 网络解决方案, 能够独立运行,也可以作为从机搭载于其他主机 MCU 运行. 瑞昱 8710 在搭载应用并作为设备中唯⼀的应⽤处理器时,能够直接从外接闪 ...

  8. C# RabbitMQ优先级队列实战项目演练

    一.需求背景 当用户在商城上进行下单支付,针对客户等级的不同和订单金额的大小划分客户级别,需要优先处理给标识为大订单的客户发送一份订单邮件提醒.那么我们应用程序如何解决这样的需求场景呢?今天阿笨给大家 ...

  9. 搭建memcached使用:/usr/bin/phpize 安装memcached扩展的时候报错

    Can't find PHP headers in /usr/include/phpThe php-devel package is required for use of this command ...

  10. ReactNative如何在JS中引用原生自定义控件(rn变化太快,网上很多教程有坑,这个我研究后可用,特意分享)

    直接写一个Demo例子,有相关功底的肯定明白,会对特别的地方进行提醒,本文基于https://blog.csdn.net/lintcgirl/article/details/53489490,但是按此 ...