当前位置: 首页 > article >正文

【R语言】dplyr包经典函数summarise函数

dplyr包经典函数summarise函数,后面改名乘reframe函数了,但是summarise仍然适用

这个函数的返回结果是一个新的数据框,下面讲一下几种常见用法

示例数据为R自带的数据集mtcars

1.不分组

mtcars %>%summarise(mean = mean(disp), n = n())其中mean表示计算观测值也就是disp的平均值,n()计算观测值的个数,因为没分组所以只有一行也就是整个数据框mtcars中的disp列的平均值以及一共计算了多少个disp加起来之后的平均值,其实就是数据框的行数

2.group_by(col)情况,group_by只传一列,分组使用函数group_by,分组之后原数据框打印出来并没有任何不同,一般是为了配合后面summarise函数使用的

mtcars %>%group_by(cyl) %>%summarise(mean = mean(disp), n = n())按照cyl进行分类,cyl列一种有三种取值,所以最终返回的新数据框有三行,有两列,第一列是mean代表每种cyl取值对应的disp的平均数,第二列是每个平均数的观测值有多少个,这里实际上就是每种cyl有多少个

3.group_by(col1,col2)情况,表示按照每个col1和col2的独特组合来分组

mtcars %>%group_by(cyl, vs) %>%summarise(cyl_n = n())

分多组与分一组的区别在于返回的新数据框会多出来分多组的列,比如我上面分了cyl, vs两列,那么返回的新数据框就会有这两列,再加上手动创建的cyl_n列

其中cyl三种取值,vs两种取值,把他两个放一起分组,意思就是统计每个cyl和vs独特组合的对应统计量,比如统计每个这样的独特组合有多少行,每个独特组合disp的平均值等等,理论上来讲返回的新数据框最多有3乘2等于6行,但实际上可能少于6行,因为可能有一些组合在原数据框中并不存在,比如vs=1,cyl=8的就不存在


http://www.kler.cn/a/560094.html

相关文章:

  • 测试面试题:以一个登录窗口为例,设计一下登录界面测试的思路和方法
  • 【JavaEE】SpringMVC 请求传参
  • Ubuntu非conda环境python3.8下安装labelme
  • Vue全局变量的定义和使用,创建 Store变量、读取、修改
  • Django数据库操作
  • 最长递增子序列(贪心算法)思路+源码
  • zookeeper从入门到精通
  • 在CentOS7上部署与关闭Flask接口
  • GoFly框架中集成Bolt 和badfer两个Go语言嵌入式键值数据库
  • 2025.2.24总结
  • 【java】重载(overloading)和重写(overriding)
  • 单片机分层架构的头文件设计
  • springboot集成jackson-dataformat-xml实现发送XML请求和XML响应参数处理
  • 商业银行预算管理系统的架构、流程、原型
  • 一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app
  • JAVA+MySQL实现分库分表及设计思路
  • 分享一个免费的CKA认证学习资料
  • 3. Spring Cloud LoadBalancer 入门与使用
  • 【OpenCV】入门教学
  • Websocket、WebRTC在大模型中的应用