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_df$month == 1 & flights_df$day == 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(flights$year, flights_df$month, flights_df$day), ]
- flights_df[order(desc(flights_df$arr_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
R语言扩展包dplyr——数据清洗和整理的更多相关文章
- R语言扩展包dplyr笔记
引言 2014年刚到, 就在 Feedly 订阅里看到 RStudio Blog 介绍 dplyr 包已发布 (Introducing dplyr), 此包将原本 plyr 包中的 ddply() 等 ...
- R语言数据处理包dplyr、tidyr笔记
dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...
- 安装R语言扩展包diveRsity-1
今天去了学院的运动会呢-扮熊本熊超开心-写完这篇我补上我的图么么哒 ××××××××××××文末高能预警!!!!!这个包的安装并不是本周的任务!!!!!我真是萌萌哒×××××××××××××× ××× ...
- 安装R语言扩展包vegan
这周的作业我开始得好迟啊...然而还是要努力做啊... ××××××××××××××我是萌萌哒分割线×××××××××××××××××××××××××××××××××××× 首先,百度进入官方页面,看 ...
- R语言 ggplot2包
R语言 ggplot2包的学习 分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...
- R语言重要数据集分析研究——需要整理分析阐明理念
1.R语言重要数据集分析研究需要整理分析阐明理念? 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标 ...
- R语言-神经网络包RSNNS
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- R语言-Knitr包的详细使用说明
R语言-Knitr包的详细使用说明 by 扬眉剑 来自数盟[总舵] 群:321311420 1.相关资料 1:自动化报告-谢益辉 https://github.com/yihui/r-ninja/bl ...
- 安装R语言的包的方法
安装R语言的包的方法: 1. 在线安装 在R的控制台,输入类似install.packages("TSA") # 安装 TSA install.packages("TS ...
随机推荐
- [CSAcademy]Or Problem
[CSAcademy]Or Problem 题目大意: 一个长度为\(n(n\le2\times10^5)\)的序列\(A(0\le A_i<2^{20})\),将其分为恰好\(m\)个连续段, ...
- Linux下redis 的部署、主从与集群
老男孩Python全栈6期——redis--------------------------Linux 操作系统 默认的内存管理机制RSS:page cache:anno page:Linux操作系统 ...
- React Native小白入门学习路径——二
万万没想到,RN组仅剩的一个学长也走了,刚进实验室没几天就被告知这样的事情,一下子还真的有点接受不了,现在RN组就成了为一个没有前辈带的组了,以后学习就更得靠自己了吧.唉,看来得再努力一点了. 这一周 ...
- Django——日志
日志级别 5 个级别 debug 调试 info 普通信息 warning : 提醒警告 error: 发生了错误 critical: 严重的错误 在settings中添加: LOGGING = { ...
- 报错Error configuring application listener of class org.springframework.web.context.ContextConfigLocation
错误内容是ClassNotFoundException: org.springframework.web.context.ContextConfigLocationdao导致一运行项目就是404 是因 ...
- MyBatis 命名空间与命名解析
命名空间 使用完全限定名来进一步区分语句. 命名解析 为了减少输入量,MyBatis 对所有的命名配置元素(包括语句,结果映射,缓存等)使用如下的命名解析规则: 完全限定名(比如“com.mypack ...
- input中autocomplete属性
autocomplete="off":表示刷新页面时,input中的value值清空 <input type="text" id="q" ...
- HDU 5985 Lucky Coins 数学
Lucky Coins 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5985 Description Bob has collected a lot ...
- 关于#!/bin/bash和#!/bin/sh
关于#!/bin/bash和#!/bin/sh #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径. bash只 ...
- Vue(一)创建第一个Vue程序
一.下载安装nodeJs 基于node.js,利用淘宝npm镜像安装相关依赖.由于国内使用npm会很慢,这里推荐使用淘宝NPM镜像 -- npm install -g cnpm --registry= ...