首页 > 其他分享 >R语言统计分析——描述性统计

R语言统计分析——描述性统计

时间:2024-08-04 10:25:21浏览次数:9  
标签:myvars 语言 mtcars am 统计分析 描述性 统计 函数

参考资料:R语言实战【第2版】

1、整体统计

        对于R语言基础安装,可以使用summary()函数来获取描述性统计量。summary()函数提供了最小值、最大值、四分位数、中位数和算术平均数,以及因子向量和逻辑向量的频数统计。

myvars<-c("mpg","hp","wt")
summary(mtcars[myvars])

        但基础安装没有提供偏度和峰度的计算函数。需要我们自定义函数来进行运算。

mystats<-function(x,na.omit=FALSE){
  if(na.omit) x<-x[!is.na(x)]
  m<-mean(x)
  n<-length(x)
  s<-sd(x)
  skew<-sum((x-m)^3/s^3)/n
  kurt<-sum((x-m)^4/s^4)/n-3
  return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))
}
myvars<-c("mpg","hp","wt")
sapply(mtcars[myvars],mystats)

        Hmisc、pastecs和psych包中也都有计算描述性统计量的函数。首次使用前需要先行安装。

        Hmisc包中的describe()函数可返回变量和观测的数值、缺失值和唯一值的数目、平均值、分位数,以及5个最大的值和5个最小的值。

library(Hmisc)
myvars<-c("mpg","hp","wt")
describe(mtcars[myvars])

        pastecs包中的stat.desc()函数,可以计算种类繁多的描述性统计量。使用格式为:

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

其中x是一个数据框或时间序列。

若basic=TRUE,则计算其中所有值、空值、缺失值的数量,以及最小值、最大值、值域,还有总和。

若desc=TRUE,则计算中位数、平均数、平均数标准误、平均数置信度为参数p的置信区间、方差、标准差以及变异系数。

若norm=TRUE,则返回正态分布统计量,包括偏度和峰度(以及他们的统计显著程度)和Shaprio-Wilk正态检验结果。

library(pastecs)
myvars<-c("mpg","hp","wt")
stat.desc(mtcars[myvars])

        psych包也有一个名为describe()的函数,它可以计算非缺失值的数量、平均数、标准差、中位数、截尾平均数、绝对中位数、最小值、最大值、值域、偏度、峰度和平均值的标准误。

library(psych)
myvars<-c("mpg","hp","wt")
describe(mtcars[myvars])

2、分组统计

        在比较多组个体或观测时,关注的焦点经常是各组的描述性统计信息,而不是样本整体的描述性统计信息。我们可以使用aggregate()函数来分组获取描述性统计量。

myvars<-c("mpg","hp","wt")
aggregate(mtcars[myvars],by=list(am=mtcars$am),mean)
aggregate(mtcars[myvars],by=list(am=mtcars$am),sd)

        注意list(am=mtcars$am)的使用。如果使用的是list(mtcars$am),则am列将被标注为Group.1而不是am,不利于我们对分组数据的理解。

        aggregate()函数仅允许在每次调用中使用平均数、标准差这样的单返回值函数。要解决这个问题,我们可以使用by()函数,格式为:

        by(data,INDICES,FUN)

by(mtcars[myvars],mtcars$am,describe)

        doBy包中summaryBy()函数的使用格式为:

        summary(formula,data=dataframe,FUN=function)

其中formula接受以下格式:

        var1+var2+var3+...+varN~groupvar1+groupvar2+...+groupvarN

在~左侧的变量为需要统计分析的数值型变量,而~右侧的变量是类别型的分组变量。function可以是内建函数也可以是自编函数。

install.packages("doBy")
library(doBy)
summaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats)

        psych包中的describeBy()函数可以计算和describe()相同的统计量,只是按照一个或多个分组变量分层。但是,describeBy()函数不允许指定任意函数,所以它的普适性较低。若存在一个以上的分组变量,我们可以使用list(name1=groupvar1,name2=groupvar2,...,nameN=groupvarN)来表示它们,但这仅在分组变量交叉后不出现空白单元时有效。

library(psych)
describe(mtcars[myvars])
describeBy(mtcars[myvars],list(am=mtcars$am))

标签:myvars,语言,mtcars,am,统计分析,描述性,统计,函数
From: https://blog.csdn.net/maizeman126/article/details/140880763

相关文章

  • Flink开发语言选择:Java还是Scala?
    在大数据处理领域,ApacheFlink因其高性能、低延迟和强大的数据流处理能力,成为了广泛使用的流处理框架。然而,在决定使用Flink进行开发时,选择合适的编程语言——Java还是Scala——往往是一个重要的考虑因素。本文将探讨这两种语言在Flink开发中的优劣,并帮助开发者做出最适合自己......
  • 第6天:信息打点-Web 架构篇&域名&语言&中间件&数据库&系统&源码获取
    #知识点:1、打点-Web架构-语言&中间件&数据库&系统等操作系统:有些漏洞出现的系统不一样、便于知道哪些漏洞可以在目标上攻击Windows&linux开发语言:漏洞的开发语言中间件容器IIS&Apache&Nginx&Tomcat&Weblogic&jboosASP&PHP&Java&python&JavaScript等2、打点-Web源码-......
  • 实现一个终端文本编辑器来学习golang语言:第二章Raw模式下的输入输出
    从第二章开始,在每个小节的最后都会有一些代码实操作业,你可以选择自己完成(比较推荐),再对照我的实现方式,当然也可以直接看我的代码实现。不过,之后的各个功能实现,我都会基于我先前的代码实现版本,在它的基础上进行扩展。首先,我们先来解决第一章遗留的第一个问题:输入数据会被stdin缓存......
  • C语言关于函数的基本介绍
    目录一、前言二、为什么需要函数?三、什么是函数?四、函数的作用及分类。五、函数的基本用法。六、主函数的简单介绍。七、函数原型以及一些常用的系统函数的介绍。一、前言    这些都是作者学习C语言过程中了解到的只是,有的地方可能不是写的特别清楚,同时这也是......
  • 【C语言】C语言期末突击/考研--函数
    目录一、函数的声明与定义-嵌套调用1.1.函数的声明与定义1.2.函数的分类与调用二、函数的递归调用三、局部变量与全局变量3.1.全局变量解析形参实参解析3.2.局部变量与全局变量四、练习题及解析一、函数的声明与定义-嵌套调用1.1.函数的声明与定义    函数间......
  • 【C语言】字符函数和字符串函数详解
    ......
  • 【C语言】结构体内存布局解析——字节对齐
    ......
  • 自动构建爬虫请求头,支持多种语言
    在构建请求头时,需要添加一些请求头参数,有时候需要逐个尝试看哪些是我们需要的参数,这就造成了一定的麻烦。本文介绍几个自动生成请求头的工具网站,一键复制粘贴。首先在网络中找到我们需要的那个包,右键复制,选择复制为cURL(bash)。然后进入工具https://curlconverter.com/,......
  • 大语言模型(LLM)工作的3个步骤,一文带你搞清楚!
    生成式AI中常说的token是什么?嵌入(Embeddings)是什么意思?为什么现在的AI具有生成能力?AI是怎么和你进行对话的?为什么都说提示词很重要?为什么同一段提示词,同一个AI模型/工具,多问几次可能得到截然不同的结果?要回答以上这些问题,你需要了解大语言模型(LLM)是如何工作的。知其然,也要......
  • C语言:动态内存管理
    动态内存管理一、动态分配内存的必要性普通内存分配动态内存分配二、动态内存分配函数(一)malloc(二)calloc(三)realloc(四)free三、常见的错误(一)对空指针进行解引用操作(二)对动态分配空间越界访问(三)free释放动态分配空间的一部分(四)动态开辟内存忘记释放四、柔性数组(一)柔性数组......