原创:拴小林 数据驱动实践2019-08-30 21:55:14最近在研究excel透视图,想到好像自己在R-分组操作并不是很流畅,顺便学习分享一下。R自带数据集比较多,今天就选择一个我想对了解的mtcars数据集带大家学习一下R语言中的分组计算(操作)。
目录
1 dplyr包中的group_by联合summarize
1.1 group_by语法
1.2 summarise语法
1.3 group_by和summarise单变量分组计算
1.4 group_by和summarise多变量分组计算
2 ddply
2.1 ddply语法
2.2 ddply分组计算示例
3 aggregate
3.1 aggregate语法
3.2 aggregate分组计算示例
3.3 aggregate分组计算补充(formula形式)
4 splite
正文
首先给大家看一下mtcars数据集的基本情况,data.frame类型,32个观测对象,11个变量。
> head(mtcars)> str(mtcars)1 dplyr包中的group_by联合summarize
1.1 group_by语法
- group_by(.data, ...,)
1.2 summarise语法
- summarise(.data, ...)
注:计算函数Useful functions拓展中英语不解释了,应该懂得
1.3 group_by和summarise单变量分组计算示例
- > library(dplyr) #加载dplyr包
1.4 group_by和summarise多变量分组计算示例
- > mtcars %>% group_by(vs, am) %>% summarise(n = n())
2 ddply
接触了Hadley Wickham神包tidyverse以后感觉数据操作那么简单,这里介绍一种可以实现分组计算/操作的方法,就是plyr包的split-apply-combine思想
2.1 ddply语法
- ddply(.data, .variables, ... )
2.2 ddply分组计算示例
- > library(plyr); library(dplyr)
注意ddply中分组变量一定要在“点+括号中”,例如".(sex) 或 .(group, sex)"
3 aggregate
3.1 aggregate语法
- aggregate(x, by, FUN)
3.2 aggregate分组计算示例
- > aggregate(state.x77, list(Region = state.region), mean)
———————
- > aggregate(state.x77,list(+ Region = state.region,+ Cold = state.x77[,"Frost"] > 130),+ mean)
3.3 aggregate分组计算补充(formula形式)
- aggregate(formula, data, FUN)#Formulas, one ~ one, one ~ many, many ~ one, and many ~ many:> aggregate(weight ~ feed, data = chickwts, mean)
4 splite
感觉splite没有太多好讲的,直接上例子体会一下吧~
- > require(stats); require(graphics)
【推荐书籍】
R数据科学 作者:[新西兰]哈德利·威克姆(Hadley Wickham),[美]加勒特·格罗勒芒
R数据科学实战:工具详解与案例分析 作者:邬书豪,刘健
《R数据科学》是一本专门讲解tidyverse相关包的书籍,主要涉及dplyr、tidyr、ggplot2、purrr等,非常值得学习,基本上此一本书可以解答数据处理的大部分问题



雷达卡




京公网安备 11010802022788号







