这篇文章,我们来看一下分组操作,主要介绍 .by / by 的用法,这个新功能也是借鉴了 R 语言的 data.table 包。 1. group_by() 函数分组 在使用 dplyr 包进行数据处理时,可以调用 group_by() 函数对数据分组汇总,以 transactions 表为例,transactions 表记录了不同公司各个年份的收入。 library(dplyr) transacti...
continent 分组计数, 并降序排, 与 count 等价gapminder%>%group_by(year,continent)%>%summarise(cnt=n())%>%arrange(desc(cnt))# 分组去重计数,按 year 分组,去重统计 continent 的个数# 类似于 select year, count(distinct continent) from table group by yeargapminder%>%group_by(year)%...
假设数据以 tibble 格式保存。数据集如果用于统计与绘图,需要满足一定的格式要求,(Wickham, 2014) 称之...
mtcars%>%group_by(cyl)%>%#分组统计,再纵向合并分组结果summarise(mean=mean(disp),n=n())# # A tibble:3x3# cyl mean n#<dbl><dbl><int>#14105.11#26183.7#38353.14# n()函数表示每个分类水平的数目,类似于table()。一般建议在分组统计时都添加下,对数据有整体的把握mtcars%>%group_by(cyl)%>%summ...
mytable1 <- function(x, key) x %.% group_by(as.name(key)) %.% summarise(n = n()) mytable1(iris, "Species") # Wrong! # Error: unsupported type for column 'as.name(key)' (SYMSXP) mytable2 <- function(x, key) x %.% group_by(key) %.% summarise(n = n()) ...
data.table比较简洁一步搞定,dplyr花了两步,不过也dplyr也可以通过%>%来实现一步搞定。%>%的功能是用于实现将一个函数的输出传递给下一个函数的第一个参数。 代码语言:javascript 复制 from_dplyr=data %>% group_by(gender,ID) %>% summarize(mean=mean(mortagage)) 本文参与 腾讯云自媒体同步曝光计划,分享...
和data.table 不同的是,我们需要为操作指定一个名称,以便将结果储存到列中。而且, do( ) 中的表达式不能直接在分组数据的语义下计算,我们需要使用 . 来表示数据: models <- diamonds %>% group_ _by(cut) %>% do(lmod = lm(log(price) ~ carat, data = .)) ...
6. 使用 group\_by( ) 拆分数据框 函数group_by( )可以将数据框按照某一个或某几个分类变量拆分成多个数据框。例如: group_by(birthwt, race) str(group_by(birthwt, race)) # === 输出 === grouped_df [189 × 10] (S3: grouped_df/tbl_df/tbl/data.frame) $ low : int [1:189] 0 ...
mutate( )函数可以创建一个新的数据框,这个数据框包含新列,或者替换原数据框的列。它与transform( )类似,不同的是,如果数据是data.table,它也能支持原地赋值:=: mutate(product_stats, density = size / weight) ## Source: local data frame [6 x 5] ...
在dplyr和data.table包中,我们可以使用链式操作来实现代码的连续性。在dplyr中,使用magrittr包中的%>%管道函数非常酷。%>%的功能是用于实现将一个函数的输出传递给下一个函数的第一个参数。在data.table中,我们可以使用%>%或[来实现链式操作。 from_dplyr=hospital_spending %>% group_by(Hospital,State) %>...