tidyverse|数据分析常规操作-分组汇总(sumamrise+group_by)
| 本文首发于 “生信补给站” https://mp.weixin.qq.com/s/tQt0ezYJj3H7x3aWZmKVEQ
使用tidyverse进行简单的数据处理:
盘一盘Tidyverse| 筛行选列之select,玩转列操作
盘一盘Tidyverse| 只要你要只要我有-filter 筛选行
Tidyverse| XX_join :多个数据表(文件)之间的各种连接
本次介绍变量汇总以及分组汇总。
一 summarise 汇总
汇总函数 summarize(),可以将数据框折叠成一行 ,多与group_by()结合使用
1.1 summarize完成指定变量的汇总
统计均值,标准差,最小值,个数和逻辑值
library(dplyr)
iris %>%
summarise(mean(Petal.Length), #无命名
sd_pet_len = sd(Petal.Length,na.rm = TRUE), #命名
min_pet_len = min(Petal.Length),
n = n(),
any(Sepal.Length > 5))
# mean(Petal.Length) sd_pet_len min_pet_len n any(Sepal.Length > 5)
#1 3.758 1.765298 1 150 TRUE
常用函数:
Center 位置度量 :
mean(),median()Spread 分散程度度量 :
sd(),IQR(),mad()Range 秩的度量 :
min(),max(),quantile()Position 定位度量 :
first(),last(),nth(),Count 计数 :
n(),n_distinct()Logical 逻辑值的计数和比例 :
any(),all()
1.2 , summarise_if完成一类变量的汇总
iris %>%
summarise_if(is.numeric, ~ mean(., na.rm = TRUE))
# Sepal.Length Sepal.Width Petal.Length Petal.Width
#1 5.843333 3.057333 3.758 1.199333
1.3,summarise_at完成指定变量的汇总
summarise_at配合vars,可以更灵活的筛选符合条件的列,然后进行汇总
iris %>%
summarise_at(vars(ends_with("Length"),Petal.Width),
list(~mean(.), ~median(.)))
# Sepal.Length_mean Petal.Length_mean Petal.Width_mean Sepal.Length_median Petal.Length_median
#1 5.843333 3.758 1.199333 5.8 4.35
# Petal.Width_median
#1 1.3
二 结合group_by 汇总
group_by() 和 summarize() 的组合构成了使用 dplyr 包时最常用的操作之一:分组摘要
2.1 按照Species分组,变量汇总
iris %>%
group_by(Species) %>%
summarise(avg_pet_len = mean(Petal.Length),
sd_pet_len = sd(Petal.Length),
min_pet_len = min(Petal.Length),
first_pet_len = first(Petal.Length),
n_pet_len = n())
# A tibble: 3 x 6
# Species avg_pet_len sd_pet_len min_pet_len first_pet_len n_pet_len
# <fct> <dbl> <dbl> <dbl> <dbl> <int>
#1 setosa 1.46 0.174 1 1.4 50
#2 versicolor 4.26 0.470 3 4.7 50
#3 virginica 5.55 0.552 4.5 6 50
2.2 计数
n() :无需参数返回当前分组的大小;
sum(!is.na(x)) : 返回非缺失值的梳理;
n_distinct(x):返回 唯一值的数量。
iris %>%
group_by(Species) %>%
summarise( n_pet_len = n(),
noNA_n_pet_len = sum(!is.na(Petal.Length)),
Petal.Length_uniq_n = n_distinct(Petal.Length)
)
# A tibble: 3 x 4
# Species n_pet_len noNA_n_pet_len Petal.Length_uniq_n
# <fct> <int> <int> <int>
#1 setosa 50 50 9
#2 versicolor 50 50 19
#3 virginica 50 50 20
除此之外,还可以用dplyr的count函数进行计数:
iris %>%
count(Species)
# A tibble: 3 x 2
# Species n
# <fct> <int>
#1 setosa 50
#2 versicolor 50
#3 virginica 50
2.3 逻辑值的计数和比例
当与数值型函数一同使用时, TRUE 会转换为 1, FALSE 会转换为 0。
这使得 sum() 和 mean() 非常适用于逻辑值: sum(x) 可以找出 x 中 TRUE 的数量, mean(x) 则可以找出比例
iris %>%
group_by(Species) %>%
summarise( n_pet_len = n(),
noNA_n_pet_len = sum(!is.na(Petal.Length)),
Petal.Length_uniq_n = n_distinct(Petal.Length),
Petal.Length_uniq_n2 = sum(n_distinct(Petal.Length) >= 20)
)
# A tibble: 3 x 5
# Species n_pet_len noNA_n_pet_len Petal.Length_uniq_n Petal.Length_uniq_n2
# <fct> <int> <int> <int> <int>
#1 setosa 50 50 9 0
#2 versicolor 50 50 19 0
#3 virginica 50 50 20 1
参考资料:
书籍:《R数据科学》
【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】
tidyverse|数据分析常规操作-分组汇总(sumamrise+group_by)的更多相关文章
- MongoDB分组汇总操作,及Spring data mongo的实现
转载请在页首注明作者与出处 一:分组汇总 1.1:SQL样例 分组汇总的应用场景非常多,比如查询每个班级的总分是多少,如果用关系形数据库,那么sql是这样子的 ),class from score g ...
- 8第八章CTE递归及分组汇总高级部分(多维数据集)(转载)
8第八章CTE递归及分组汇总高级部分(多维数据集) 这里贴图太麻烦...算了 UNION 等集合操作符: UNION 等以第一个 SELECT 的 列明 作为 整个结果集的列明,整个结果集 唯一认可 ...
- R语言︱词典型情感分析文本操作技巧汇总(打标签、词典与数据匹配等)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:情感分析中对文本处理的数据的小技巧要 ...
- Learn Docker(一)—软件安装与常规操作
一.安装Docker Windows平台 在Windows10 X64专业版上可以直接下载Docker原生应用进行安装,在控制面板的程序与功能里启用Hyper-v,之后就可以运行docker程序啦. ...
- 数组(Array)的常规操作2
数组的常规操作2 常用属性 length属性:数组的长度: prototype:原型 常用数组(Array)操作方法 form 在一个类数组中创建一个新的数组实列 isArry is就是判断是否为Ar ...
- gridpanel分组汇总
[ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总 2015-05-31 86 本文地址:http://blog.csdn.net/sushengmi ...
- FTP服务器常规操作
导读 FTP协议是Internet文件传输的基础,它是由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据.下面就由我给大家简单介绍一下 ...
- Apache服务器常规操作
导读 Apache是世界上排名第一的Web服务器,50%以上的Web服务器都在使用Apache,它几乎可以在所有计算机平台上运行.下面就由我给大家说说Apache服务器的一些常规操作. Apache服 ...
- PHP网络操作函数汇总
PHP网络操作函数汇总 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了PHP网络操作函数汇总,本文列举了如gethostbyaddr.gethostbyname.head ...
随机推荐
- centos 7 源码安装openssh
环境:centos 7.1.1503 最小化安装 依赖包下载: yum -y install lrzsz zlib-devel perl gcc pam-devel 1.安装openssl ,选用最 ...
- 基于EntityFramework 6 Code First实现动态建库,分库,数据库自动迁移
一.前言 公司原本有一个"xx系统",ORM使用EntityFramework,Code First模式.该系统是针对某个客户企业的,现要求该系统支持多个企业使用,但是又不能给每个 ...
- 自己动手实现深度学习框架-7 RNN层--GRU, LSTM
目标 这个阶段会给cute-dl添加循环层,使之能够支持RNN--循环神经网络. 具体目标包括: 添加激活函数sigmoid, tanh. 添加GRU(Gate Recurrent U ...
- [转载]java内存工具VisualVM的简单使用以及与Idea集成
本文来源https://blog.csdn.net/KingBoyWorld/article/details/75579606 一.idea集成 1.打开设置 windows File->Set ...
- PHP上传进度支持(Upload progress in sessions)
文件上传进度反馈, 这个需求在当前是越来越普遍, 比如大附件邮件. 在PHP5.4以前, 我们可以通过APC提供的功能来实现. 或者使用PECL扩展uploadprogress来实现. 从PHP的角度 ...
- Git中的core.autocrlf选项
项目的开发环境为Windows,在Linux环境下编译,使用Git进行版本控制. 在安装好Git和TortoiseGit后,从远端clone,遇到一个奇怪的问题,Shell脚本中的LF总是被替换成了C ...
- 《Java并发编程的艺术》第5章 Java中的锁 ——学习笔记
参考https://www.cnblogs.com/lilinzhiyu/p/8125195.html 5.1 Lock接口 锁是用来控制多个线程访问共享资源的方式. 一般来说一个锁可以防止多个线程同 ...
- position中的四种属性
Position有四个属性值,分别是static .fixed. relative .absolute. 第一个属性值是static,这是position的默认属性,一般我们都不会用到它,所以也很少提 ...
- MFC vc++严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3646 “m_SockClient”: 未知重写说明符
严重性 代码 说明 项目 文件 行 禁止显示状态错误 C3646 “m_SockClient”: 未知重写说明符 MFC_TCP_CSocket_Client c:\users\tt2018\docu ...
- Elasticsearch、Solr、Lucene、Hermes区别
Elasticsearch简介 Elasticsearch是一个实时分布式搜索和分析引擎.它让你以前所未有的速度处理大数据成为可能.它用于全文搜索.结构化搜索.分析以及将这三者混合使用:维基百科使用E ...