group_by():定义分组变量,summarise():汇总总结

dplyr分两步完成汇总
1.用group_by定义分组变量
2.用一行summarise代码描述如何对每组汇总。

3.1group_by这个函数只是定义分组变量,并没有改变数据的结构。

3.2summarise():汇总总结,和一些函数协作。

  • 计数:n()、n_distinct(x)
  • 中间值:mean(x)、median(x)
  • 离散程度sd()、mad(x)、IQR(x)
  • 极端值quartile(x)、min(x)、max(x)
  • 位置first()、last()、nth()

例如要想看不同净度的钻石的平均价格可以通过下面的代码实现。

library(ggplot2) #diamonds数据集在这个包里面
library(dplyr) #两个函数在这里面
by_clarity <- group_by(diamonds,clarity)#对diamonds按照clarity定义分组(并没有实际分组)
sum_clarity <- summarise(by_clarity,price=mean(price))
sum_clarity
ggplot(sum_clarity,aes(clarity,price))+geom_line(aes(group=1),colour="grey80")+geom_point(size=2)

这个图中净度更高时价格却低了。在后面会解决。

下面我们对刚才的分净度平均价格做一个补充:增加每组的计数和上下四分位点。这显示出均值对这个数据的汇总效果并不好,因为价格的分布是偏态的:在某些组内,均值甚至比上四分位数还高。

by_clarity <- diamonds%>%group_by(clarity)%>%summarise(n=n(),mean=mean(price),lq=quantile(price,0.25),up=quantile(price,0.75))
by_clarity
ggplot(by_clarity,aes(clarity,mean))+geom_linerange(aes(ymin=lq,ymax=up))+geom_line(aes(group=),colour="grey50")+geom_point(aes(size=n))

我们也可以多个变量分组。
接下来的例子就是展示计算一个展现切工和深度关系的频率多边形。

cut_depth <- summarise(group_by(diamonds,cut,depth),n=n())
cut_depth <- filter(cut_depth,depth>55,depth < 70)
cut_depth
ggplot(cut_depth,aes(depth,n,colour=cut))+geom_line()
# 我们可以将计数转换为比例,这样更方便在各个切工中比较
cut_depth <- mutate(cut_depth,prop=n/sum(n))
ggplot(cut_depth,aes(depth,prop,colour=cut))+geom_line()

R语言中的group_by()和summarise()相关推荐

  1. 1071svm函数 r语言_如何利用R语言中的rpart函数建立决策树模型

    决策树是根据若干输入变量的值构造出一个适合的模型,以此来预测输出变量的值,并用树形结构展示出来.决策树主要有两个类别:分类树和回归树.分类树主要针对离散的目标变量,回归树则针对连续的目标变量.R语言中 ...

  2. r语言中c函数错误,R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" ...

  3. r语言中的shiny教程_如何使用Shiny在R中编写Web应用程序

    r语言中的shiny教程 新年快乐! 这个月我忙于撰写一些较大的文章,因此请在接下来的几周内查找这些文章. 对于本月的Nooks和Crannies,我想简要指出一个我一直在用它进行自我教育的出色R库. ...

  4. R语言中if语句使用方法之超详细教程

    在R语言中,if属于一种分支结构,即根据某个条件执行相关的语句.R中的if语句与else配合主要有3种结构. 单个if语句 if(cond) {expr} 其它语句 即当括弧中的cond条件为TRUE ...

  5. R语言中GCC编译的问题(续)

    这篇文章承接R语言中GCC编译的问题,这篇文章主要解决我在Linux系统上安装"expm"出现的问题. 出现的问题 这个问题非常的有趣,因为我在两台服务器分别安装同一个包,其中一台 ...

  6. r语言中paste函数_R中的paste()函数-简要指南

    r语言中paste函数 Using the paste() function in R will be straight and simple. In this tutorial let's see ...

  7. r语言中的while循环_R编程中的While循环

    r语言中的while循环 In addition to the for loop we discussed earlier, R also offers another kind of loop to ...

  8. R语言中的igraph包绘制网络图

    本文转自网络. R语言中的igraph包可以很方便地画出网络图,在社交关系分析等领域发挥重要作用,下面介绍包中一个重要的函数graph_from_data_frame(). graph_from_da ...

  9. 相关系数pearson、spearman、kendall和R语言中的cor/or.test()

    相关系数pearson.spearman.kendall和R语言中的cor/cor.test 1. 相关系数pearson.spearman.kendall 2. R语言cor函数和cor.test函 ...

最新文章

  1. Opengl-光照章节学习成果
  2. promethues集成nomad
  3. win10装sql2000卡在选择配置_恢复win10系统安装SQL2000卡在MADC不动的妙计
  4. JavaParser生成,分析和修改Java代码
  5. 【译】你不知道的 Chrome 调试工具技巧 第二十天:Workspace的黑魔法
  6. Java变量的初始化问题探究
  7. pytorch torch.utils.data.TensorDataset
  8. nginx配置二级域名
  9. 折腾修改SQLCipher静态库的符号表
  10. Linux crash调试(一)
  11. 如何一次打开多个Word文档
  12. e1000网卡和DMA
  13. 按照黑马教程学习javaWeb出现Property ‘dataSource‘ is requir报错HTTP Status 500 – Internal Server Error——解决方案
  14. 迭代法求解非线性问题
  15. 高数 | 极限定义函数 系列例题
  16. C++学习之第八天-解析RSS文件
  17. open()和with open() as的区别
  18. 交换机端口镜像的设置
  19. web表单设计器Ueditor Formdesign Plugins安装使用教程
  20. 怎么转义MySQL字符,MySQL转义字符的使用

热门文章

  1. 数学建模:线性规划与多目标规划
  2. unity3d制作背包系统(3)--UI部分
  3. 【亚马逊运营】借助Coupon流量入口,让你的爆款锦上添花!
  4. win10系统下我的电脑右键没有属性
  5. 在阿里云备案成功网站域名可以使用腾讯云服务器吗?恐怕不行
  6. IntelliJ Idea各种技巧设置笔记和错误解决
  7. 7-20 电话聊天狂人
  8. printf函数封装
  9. unity客户端开源框架
  10. 一键整理硬盘所有的照片和视频,手机照片的自动备份---多点相册