6. 描述性统计函数:summary 、Fivenum、describe、describeBy、stat.desc、 Aggregate、summaryBy

news2024/12/27 12:01:56

b站课程视频链接:
https://www.bilibili.com/video/BV19x411X7C6?p=1
腾讯课堂(最新,但是要花钱,我花99😢😢元买了,感觉讲的没问题,就是知识点结构有点乱,有点废话):
https://ke.qq.com/course/3707827#term_id=103855009
 
本笔记前面的笔记参照b站视频,【后面的画图】参考了付费视频
笔记顺序做了些调整【个人感觉逻辑顺畅】,并删掉一些不重要的内容,以及补充了个人理解
系列笔记目录【持续更新】:https://blog.csdn.net/weixin_42214698/category_11393896.html

文章目录

  • 1. summary( ) 、Fivenum( )
  • 2. Hmisc包中的describe( )
  • 3. pastecs包中有一个stat.desc()
  • 4. psych包中的describe( ) 、describeBy( )
  • 5. Aggregate( ) 【动词:聚合】
  • 6. doBy包中的summaryBy( )

1. summary( ) 、Fivenum( )

首先是summary()函数,运行一次该函数,就可以对数据进行详细的统计。

> myvars <- mtcars[c("mpg", "hp", "wt", "am")]
> 
> 使用summary()函数计算变量的数据,结果包括最小值,下四分位数,中四分位数,数值型变量的均值,上四分位数 和 最大值
> summary(myvars)
      mpg              hp              wt              am        
 Min.   :10.40   Min.   : 52.0   Min.   :1.513   Min.   :0.0000  
 1st Qu.:15.43   1st Qu.: 96.5   1st Qu.:2.581   1st Qu.:0.0000  
 Median :19.20   Median :123.0   Median :3.325   Median :0.0000  
 Mean   :20.09   Mean   :146.7   Mean   :3.217   Mean   :0.4062  
 3rd Qu.:22.80   3rd Qu.:180.0   3rd Qu.:3.610   3rd Qu.:1.0000  
 Max.   :33.90   Max.   :335.0   Max.   :5.424   Max.   :1.0000  

>Fivenum()函数和summary()函数类似,但可以返回5个基本的统计量,包括最小值,四分位数、中位数、上四位数、最大值
> fivenum(myvars$hp)
[1]  52  96 123 180 335
> 



2. Hmisc包中的describe( )

Hmisc包中的describe()函数也可以计算统计量,可以返回变量和观测的数量、缺失值和唯一值的数目、以及平均值、分位数、已经五个最大的值和五个最小的值

install.packages("Hmisc")
library(Hmisc)
A <- c("mpg", "hp", "wt")
mtcars[A]
describe(mtcars[A])

在这里插入图片描述
在这里插入图片描述


3. pastecs包中有一个stat.desc()

格式为:

stat.desc(x , basic = TRUE , desc =TRUE , norm=FALSE , p=0.95)

x:一个数据框或时间序列it
basic:=TRUE(默认值),则计算全部值、空值、缺失值的数量,以及最小值、最大值、值域,还有总和io
desc:=TRUE(默认值),则计算中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数ast

norm:=TRUE(非默认):
返回正态分布统计量,包括偏度和峰度(以及她们的统计显著程度)和Shapiro-Wilk正态检验结果function

p:p值来计算平均数的置信区间(默认置信度为0.95

例子:

>install.packages("pastecs")
>library(pastecs)
>A <- c("mpg", "hp", "wt")
> stat.desc(mtcars[A])
                     mpg           hp          wt
nbr.val       32.0000000   32.0000000  32.0000000
nbr.null       0.0000000    0.0000000   0.0000000
nbr.na         0.0000000    0.0000000   0.0000000
min           10.4000000   52.0000000   1.5130000
max           33.9000000  335.0000000   5.4240000
range         23.5000000  283.0000000   3.9110000
sum          642.9000000 4694.0000000 102.9520000
median        19.2000000  123.0000000   3.3250000
mean          20.0906250  146.6875000   3.2172500
SE.mean        1.0654240   12.1203173   0.1729685
CI.mean.0.95   2.1729465   24.7195501   0.3527715
var           36.3241028 4700.8669355   0.9573790
std.dev        6.0269481   68.5628685   0.9784574
coef.var       0.2999881    0.4674077   0.3041285



4. psych包中的describe( ) 、describeBy( )

1️⃣describe( )
psych包中也有一个describe()函数,可以计算:
非缺失值的数量、平均数、标准差、中位数、截尾的均值、最大值、最小值、偏度和峰度等等内容

截尾的均值是去掉两头的数据取均值,就像打分时,去掉一个最低分、去掉一个最高分,然后中间数据求均值。可以通过设置trim参数,设置去除比例,如trim=0.1,则是去除数据中最高和最低的10%的部分

当两个包的函数名一样时,后面载入的包的函数会覆盖前面载入的包的函数,如果要使用前面一个包的函数,只需要在包后加冒号再使用即可,如:Hmisc::describe()

>install.packages("psych")
>library(psych)
> A <- c("mpg", "hp", "wt")
> describe(mtcars[A],trim = 0.1)   # 这里是psych包下,优先考虑最后导入的包
    vars  n   mean    sd median trimmed   mad   min    max  range skew kurtosis    se
mpg    1 32  20.09  6.03  19.20   19.70  5.41 10.40  33.90  23.50 0.61    -0.37  1.07
hp     2 32 146.69 68.56 123.00  141.19 77.10 52.00 335.00 283.00 0.73    -0.14 12.12
wt     3 32   3.22  0.98   3.33    3.15  0.77  1.51   5.42   3.91 0.42    -0.02  0.17

2️⃣describeBy( )

library(psych)
A <- c("mpg", "hp", "wt")
> describeBy(mtcars[A], list(am=mtcars$am))

 Descriptive statistics by group 
am: 0
    vars  n   mean    sd median trimmed   mad   min    max  range  skew kurtosis    se
mpg    1 19  17.15  3.83  17.30   17.12  3.11 10.40  24.40  14.00  0.01    -0.80  0.88
hp     2 19 160.26 53.91 175.00  161.06 77.10 62.00 245.00 183.00 -0.01    -1.21 12.37
wt     3 19   3.77  0.78   3.52    3.75  0.45  2.46   5.42   2.96  0.98     0.14  0.18
------------------------------------------------------------------------ 
am: 1
    vars  n   mean    sd median trimmed   mad   min    max  range skew kurtosis    se
mpg    1 13  24.39  6.17  22.80   24.38  6.67 15.00  33.90  18.90 0.05    -1.46  1.71
hp     2 13 126.85 84.06 109.00  114.73 63.75 52.00 335.00 283.00 1.36     0.56 23.31
wt     3 13   2.41  0.62   2.32    2.39  0.68  1.51   3.57   2.06 0.21    -1.17  0.17
> 

describeBy( )适合详细查看每一个分组的统计值,但缺点是给出的统计值是固定不变的,没办法使用自定义的函数



5. Aggregate( ) 【动词:聚合】

> # 使用mass这个包中的cars93数据集【93年许多不同汽车的指标】
> library(MASS)
> # 选取其中三列
> B <- Cars93[c("Min.Price","Price","Max.Price","MPG.city")]
> #根据汽车制造商Cars93$Manufacturer来对数据进行分组统计,计算每个汽车制造商这三列的平均值
> aggregate(B , by=list(Manufacturer=Cars93$Manufacturer) , mean)
    Manufacturer Min.Price    Price Max.Price MPG.city
1          Acura  21.05000 24.90000    28.750 21.50000
2           Audi  28.35000 33.40000    38.450 19.50000
3            BMW  23.70000 30.00000    36.200 22.00000
4          Buick  20.75000 21.62500    22.550 19.00000
5       Cadillac  35.25000 37.40000    39.500 16.00000
6      Chevrolet  16.08750 18.18750    20.325 19.62500
7       Chrylser  18.40000 18.40000    18.400 20.00000
8       Chrysler  22.00000 22.65000    23.300 21.50000
9          Dodge  12.51667 15.70000    18.900 21.66667
10         Eagle  12.70000 15.75000    18.850 24.50000
11          Ford  12.43750 14.96250    17.500 22.00000
12           Geo   9.10000 10.45000    11.750 38.00000
一共有32列..

> #根据产地计算平均值
> aggregate(B,by=list(Origin=Cars93$Origin),mean)
   Origin Min.Price    Price Max.Price MPG.city
1     USA  16.53542 18.57292  20.62708 20.95833
2 non-USA  17.75556 20.50889  23.25556 23.86667

# 计算标准差
aggregate(B,by=list(Manufacturer=Cars93$Manufacturer),sd)
aggregate(B,by=list(Origin=Cars93$Origin),sd)

也可以一次性使用多个分组条件,只需要在列表中添加即可,例如同时使用产地和制造商来分组:

> aggregate(B, by=list(Origin=Cars93$Origin,Manufacturer=Cars93$Manufacturer),mean)
    Origin  Manufacturer Min.Price    Price Max.Price MPG.city
1  non-USA         Acura  21.05000 24.90000    28.750 21.50000
2  non-USA          Audi  28.35000 33.40000    38.450 19.50000
3  non-USA           BMW  23.70000 30.00000    36.200 22.00000
4      USA         Buick  20.75000 21.62500    22.550 19.00000
5      USA      Cadillac  35.25000 37.40000    39.500 16.00000
6      USA     Chevrolet  16.08750 18.18750    20.325 19.62500
7      USA      Chrylser  18.40000 18.40000    18.400 20.00000
8      USA      Chrysler  22.00000 22.65000    23.300 21.50000
9      USA         Dodge  12.51667 15.70000    18.900 21.66667
10     USA         Eagle  12.70000 15.75000    18.850 24.50000
一共有32列..

aggregate函数的缺点是一次只用使用一个统计函数,比如只能返回平均值、方差等,可以使用一些扩展包来进行分组计算并实现返回多种描述性统计量



6. doBy包中的summaryBy( )

summary_by(data, formula,id = NULL,FUN = mean..)

data参数指定数据集

formula格式为:波浪线左侧 ~ 波浪线右侧
波浪线左侧是需要分析的数值型变量,直接写数据框中的列的名字就可以,不需要添加引号;不同变量之间用+号表示;
右侧的变量是“类别型”的分组变量

fun参数指定统计函数,也可以是自定义函数

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/164657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESP32设备驱动-ADXL345三轴加速计驱动

ADXL345三轴加速计驱动 文章目录 ADXL345三轴加速计驱动1、ADXL345介绍2、硬件准备3、软件准备4、驱动实现1、ADXL345介绍 ADXL345 是一款小型、薄型、低功耗、3 轴加速度计,具有高达 16g 的高分辨率(13 位)测量值。数字输出数据采用 16 位二进制补码格式,可通过 SPI(3 线…

C进阶:动态内存函数 malloc calloc realloc free及常见动态内存开辟错误

本文主要讲解动态内存开辟的有关知识。 目录 一.malloc 与 free 1.malloc 2.free 3.实例&#xff1a; 二.calloc 三.realloc 四.常见的动态内存错误 1.对NULL指针的解引用操作 2.对动态开辟空间的越界访问 3.对非动态开辟内存使用free释放 4.使用free释放一块动态…

springboot 构建多模块项目

新建 spring initializr 父项目 Spring 官方提供了 Spring Initializr 来引导大家快速构建一个应用项目。在此不细说。 idea 创建 1、 new – project 注意jdk版本 和 勾选 default,然后next 2、 填写项目信息 3、选择项目组成部分,也可后期加上 4、选择项目位置 --选…

Docker入门:介绍Docker的常用命令、镜像的加载原理、Dockerfile打包、Docker网络、Docker Compose容器编排+监控

Docker入门 1&#xff09;从面向对象角度来看&#xff0c;Docker利用容器&#xff08;Container&#xff09;独立运行一个或一组应用&#xff0c;应用程序或服务运行在容器里面&#xff0c;容器就类似于一个虚拟化的运行环境&#xff0c;容器是用镜像创建出来的运行实例。就像是…

区块链笔记4--BTC实现

1 UTXO &#xff1a;区块链是一个去中心化的账本&#xff0c;比特币采用了 基于交易的账本模式。然而&#xff0c;系统中并无显示记录账户包含BTC数&#xff0c;实际上其需要通过交易记录进行推算。在比特币系统中&#xff0c;全节点需要维护一个名为 UTXO(UnspentTransaction …

Java抽象类:案例、特点、模板方法模式

一.抽象类的案例 案例&#xff1a;加油站支付卡 系统需求&#xff1a; 某加油站推出了2种支付卡&#xff1a; 1、预存1万元的金卡&#xff0c;后续加油享受8折优惠&#xff1b; 2、预存5千元的银卡&#xff0c;后续加油享受8.5折优惠。 请分别实现2种卡片进入收银系统后的…

记录每日LeetCode 2293.极大极小游戏 Java实现

题目描述&#xff1a; 给你一个下标从 0 开始的整数数组 nums &#xff0c;其长度是 2 的幂。 对 nums 执行下述算法&#xff1a; 设 n 等于 nums 的长度&#xff0c;如果 n 1 &#xff0c;终止 算法过程。否则&#xff0c;创建 一个新的整数数组 newNums &#xff0c;新数组…

分享66个HTMLCSS源码,总有一款适合您

HTML&CSS源码 分享66个HTML&CSS源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后可以看到。 源码下载链接&#xff1a;https://pan.baidu.com/s/1AeVqON7byvt-ngB_U…

位段与枚举

目录 1、位段 1、位段的声明 2、位段的内存分配特点 3、位段的跨平台问题 4、位段的应用 2、枚举 1、枚举类型的定义 2、枚举的优点 3、联合体&#xff08;共用体&#xff09; 1、联合类型的定义 2、联合体的特点即大小计算 1、位段 1、位段的声明 位段的位指的是…

Pr初识01

Pr初识1.关于Pr&#xff1a;2.项目序列3.PR工作界面4.导入素材5.制式与素材管理6.剪辑与工具7.剪辑与工具&#xff08;下&#xff09;8.工具面板与时间轴面板进阶9.关键帧动画10.视频特效11.视频特效&#xff08;下&#xff09;12.音频及结合AU去除噪音13.字幕运用1.关于Pr&…

微信小程序自定义组件、组件的生命周期和组件通信(插槽)

文章目录导航路线自定义组件组建的创建和使用1.创建组件2.引用组件3. 局部引用组件4. 全局引用组件5. 全局引用 VS 局部引用6. 组件和页面的区别样式1.组件样式隔离2. 组件样式隔离的注意点3. 修改组件的样式隔离选项4. styleIsolation 的可选值数据、方法和属性1. data 数据2.…

Arduino UNO驱动 AT24C256 EEPROM存储器模块

Arduino UNO驱动 AT24C256 EEPROM存储器模块 AT24C256模块简介模块引脚定义Arduino UNO与模块接线测试代码实验结果AT24C256模块简介 AT24C256是一个串行EEPROM存储器&#xff0c;提供了256k bit256*1024 bit262144 bit32768 Byte32K Byte大小的存储空间&#xff0c;在芯片内部…

Jmeter做数据构造步骤详解

Jmeter做数据构造步骤详解引入什么是数据构造数据构造的方式数据构造的意义一、JDBC请求执行SQL语句构造数据01 环境准备&#xff1a;添加Jmeter插件02 使用步骤二、HTTP请求调用接口构造数据01 使用步骤完善脚本01 运用函数02 使用逻辑控制器和定时器03 添加响应断言自动判断构…

拒绝平庸,张扬出彩——维乐VELO Angel Revo

在赛场上就要做那个万众瞩目的明星&#xff0c;闪耀自己&#xff0c;让自己的实力让所有人看到&#xff01;作为骑行运动员&#xff0c;骑行配件当然是最能够彰显自我个性的地方&#xff0c;维乐美学系列明星产品Angel Revo正如其名&#xff0c;全面革新&#xff0c;也给了所有…

【自学Python】Python拼接字符串

Python拼接字符串 Python拼接字符串教程 Python 拼接 字符串 有两种方法&#xff1a;一种是直接把两个字符串写在一起&#xff0c;即可实现拼接&#xff0c;另一种是使用 来实现字符串的拼接。 Python拼接字符串详解 写在一起 语法 str1str2参数 参数描述str1要拼接的字…

BERT 词向量理解及训练更新

1、BERT 词向量理解 在预训练阶段中&#xff0c;词向量是在不断更新的&#xff0c;而在fine-tuning阶段中&#xff0c;词向量是固定不变的。在fine-tuning阶段中&#xff0c;我们使用预训练好的模型参数来对新的数据进行训练。 BERT模型在预训练阶段中&#xff0c;会学习词表中…

win10开启自带的手机投屏功能方式

本篇文章主要讲解win10开启自带的手机投屏方式。 日期&#xff1a;2023年1月15日 作者&#xff1a;任聪聪 开启后效果 点击连接 打开连接或通过手机其他网络进行连接。 连接步骤&#xff1a; 步骤一、打开手机端的wifi网络设置&#xff0c;点击高级设置或其他网络设置&…

论文的正确打开方式—如何细读一篇论文分享

前段时间听了一个关于读论文的公开课&#xff0c;课上的老师讲的非常好&#xff0c;听完之后确实发现从以前看论文的没头没脑到现在的有了一些思绪的变化&#xff0c;所以特此整理了一下分享给大家&#xff0c;希望对大家有用。 在我们初次接触论文的时候&#xff0c;经常性的遇…

《后端技术面试 38 讲》学习笔记 Day 12

《后端技术面试 38 讲》学习笔记 Day 12 31 | 大数据架构&#xff1a;大数据技术架构的思想和原理是什么&#xff1f; 原文摘抄 大数据技术其实是分布式技术在数据处理领域的创新性应用&#xff0c;本质和我们此前讲到的分布式技术思路一脉相承&#xff1a;用更多的计算机组成…

smart-doc的使用

smart-doc的使用 目录 1. 什么是smart-doc 2. smart-doc的功能特性 3. smart-doc自定义注释tag 4. 通过引入依赖生成文档 5. 通过集成smart-doc的maven插件生成文档 6. 生成Postman json文件与导入Postman测试 1. 什么是smart-doc smart-doc是一款同时支持JAVA REST API和…