dplyr的使用

做数据预处理一直用Hardly Wickham的plyr软件包,数据量稍微大点,基本就用data.table软件包。Hardly WickHam的dplyr软件包出来有一段时间了,在性能上又有了更大的提高。为了以后使用,做些笔记。

These five functions provide the basis of a language of data manipulation. At the most basic level, you can only alter a tidy data frame in five useful ways: you can reorder the rows (arrange()), pick observations and variables of interest (filter() and select()), add new variables that are functions of existing variables (mutate()) or collapse many values to a summary (summarise()). The remainder of the language comes from applying the five functions to different types of data, like to grouped data, as described next.

例子1:plyr::ddply和dplyr::group_by的比较

 1 system.time({
 2 plans <- group_by(flights, tailnum)
 3 delay <- summarise(plans,
 4 count = n(),
 5 dist = mean(distance, na.rm=T),
 6 delay = mean(arr_delay,na.rm = T)
 7 )
 8 })
 9
10 user system elapsed
11 0.092 0.003 0.097
12
13 system.time({
14 ddply(flights, ‘tailnum‘, function(x) data.frame(count=nrow(x), dist=mean(x$distance,na.rm=T), delay=mean(x$arr_delay,na.rm=T)))
15 })
16
17 user system elapsed
18 2.467 0.016 2.500
时间: 2024-10-05 06:53:56

dplyr的使用的相关文章

dplyr 数据操作 常用函数(4)

接下来我们继续了解一些dplyr中的常用函数. 1.ranking 以下各个函数可以实现对数据进行不同的排序 row_number(x) ntile(x, n) min_rank(x) dense_rank(x) percent_rank(x) cume_dist(x) 具体的看些例子. x <- c(5, 1, 3, 2, 2, NA) x row_number(x) row_number是对数据大小进行编号排序,遇到重复值,排序继续加1,缺失值不计入 min_rank(x) min_rank

dplyr包--数据操作与清洗

1.简介 在我们数据分析的实际应用中,我们可能会花费大量的时间在数据清洗上,而如果使用 R 里面自带的一些函数(base 包的 transform 等),可能会觉得力不从心,或者不是很人性化.好在我们有其他选择.这里我们介绍 dplyr 包. 首先加载包: install.packages("dplyr") library(dplyr) 单表操作函数(one table verbs)如下: filter: 保留满足条件的行 select: 使用列名选出列 arrange: 对数据的所有

dplyr 数据操作 常用函数(1)

上面介绍完dplyr中,几个主要的操作函数后,我们再进一步了解dplyr中那些函数可能我们会经常要用到. 这里主要根据dplyr包作者的书籍目录来把它列出来. 1.add_rownames 添加行名称,把数据转换成列. add_rownames(df, var = "rowname") 下面来看个具体的例子 head(mtcars) add_rownames(mtcars,var="bl") 已经把原来的行数据转成列数据了. 2.between()函数可以用于选取数

dplyr 数据操作 数据过滤 (filter)

在R的使用过程中我们几乎都绕不开Hadley Wickham 开发的几个包,前面说过的ggplot2.reshape2以及即将要讲的dplyr 因为这几个包可以非常轻易的使我们从复杂的数据操作中逃离,操作过程简洁,最重要的是数据结果也异常简洁. 首先我们来了解下第一个函数filter() filter(.data, ...) 参数很简单,只有data,即要操作的数据对象,其他都是数据操作条件. 下面看一些简单的例子 library(dplyr) x<-data.frame(id=1:6, nam

R(6): 数据处理包dplyr

dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口,本节学习dplyr包函数基本用法.dplyr()可使用%>%(链式操作),其功能是用于实现将一个函数的输出传递给下一个函数的第一个参数.注意,传递给下一个函数的第一个参数,那么下一个函数的第一个参数就不用写. 目录: 筛选: filter() 排列: arrange() 选择: select() 变形: mutate() 汇总:

dplyr 数据操作 常用函数(5)

继续来了解dplyr中的其他有用函数 1.sample() 目的是可以从一个数据框中,随机抽取一些行,然后组成新的数据框. sample_n(tbl, size, replace = FALSE, weight = NULL, .env = parent.frame()) sample_frac(tbl, size = 1, replace = FALSE, weight = NULL, .env = parent.frame()) 从参数来看,sample输入数据是tbl格式,size表示抽取

R取子集(dplyr方法)

首选用dplyr包 查看hr有哪些字段名 > names(hr) [1] "satisfaction" "evaluation" "project" "monthlyhour" "serviceyear" "accident" "left" "promotion" "dept" "salary" &qu

dplyr 数据操作 统计描述(summarise)

在R中,summary()是一个基础包中的重要统计描述函数,同样的在dplyr中summarise()函数也可以对数据进行统计描述. 不同的是summarise()更加的灵活多变,下面来看下summarise这个函数 summarise(.data, ...) 其灵活性和其他dplyr函数一样,主要在于条件的使用上 下面看些具体的例子 library(dplyr) x<-data.frame(id=1:6, name=c("wang","zhang",&quo

Accessing data in Hadoop using dplyr and SQL

If your primary objective is to query your data in Hadoop to browse, manipulate, and extract it into R, then you probably want to use SQL. You can write SQL code explicitly to interact with Hadoop, or you can write SQL code implicitly with dplyr. The