【R语言】数据分析

一、描述性统计量

借助R语言内置的airquality数据集进行简单地演示:

1、集中趋势:均值和中位数

head(airquality)
# 求集中趋势
mean(airquality$Ozone, na.rm=T) # 求均值
median(airquality$Ozone, na.rm=T) # 求中位数

2、众数

众数(mode)是指在一组数据中出现频率最高的值。尽管R语言本身没有直接提供计算众数的内置函数,但可以使用其他函数和方法来计算众数。

# 假设Temp是离散数据
which.max(table(airquality$Temp))
# 假设Temp是连续数据:density$x[which.max(density$y)]
Density <- density(airquality$Temp) 
Density

3、离散趋势

# 先求极差:最大值-最小值
max(airquality$Ozone, na.rm=T) - min(airquality$Ozone, na.rm=T)
# 选取Ozone中所有非空元素组成的子集
Ozone.rm.na <- with(airquality, Ozone[is.na(Ozone)==F])
# 求平均差
sum(abs(Ozone.rm.na - mean(Ozone.rm.na))) / length(Ozone.rm.na)
# 求标准差
sd(airquality$Ozone, na.rm=T)
# 求方差
var(airquality$Ozone, na.rm=TRUE)
# 求变异系数
with(airquality, sd(Ozone, na.rm=T) / mean(Ozone, na.rm=T) * 100)

 4、峰度和偏度

需要先安装moments扩展包。

library(moments)
kurtosis(airquality$Ozone, na.rm=T) # 峰度
skewness(airquality$Ozone, na.rm=T) # 偏度

5、百分位数

quantile(airquality$Ozone, probs=seq(0,1,by=0.1), na.rm=TRUE)

6、Turkey五数

最小值、25百分位数、中位数、75百分位数、最大值

fivenum(airquality$Ozone, na.rm=TRUE)

7、数量

length(airquality$Month)
table(airquality$Month)

8、算数截断平均数

mean()函数中有一个参数trim,当指定trim时(0~0.5的数),表示先在数据两端各自截断相应比例的最大值和最小值,再计算平均数,此平均数就叫算数截断平均数,它更能有效地代表数据的集中趋势。

mean(airquality$Ozone, na.rm=T, trim=0.2)

二、列联表

table()函数

使用table()函数创建列联表时,只需要将相应的变量作为参数写进函数中即可。

当列联表多于二维度时,可以使用ftable()函数,使其呈现得更紧凑。

如下以vcd扩展包中的Arthritis数据集进行演示:

二维度列联表

library(vcd)
head(Arthritis)
# 二维度列联表
table.2D <- table(Arthritis$Treatment, Arthritis$Sex)
table.2D

三维度列联表

# 三维度列联表
table.3D <-  table(Arthritis$Treatment, Arthritis$Sex, Arthritis$Improved)
table.3D

ftable()函数

更紧凑的呈现方式

ftable(table.3D)

xtabs()函数

也可以使用xtabs()函数创建列联表。此函数的特点是以公式而非变量的形式传递进函数中。

二维度列联表

xtabs(~ Treatment + Sex, data=Arthritis)

三维度列联表

xtabs(~ Treatment + Sex + Improved, data=Arthritis)

prop.table()函数

上述的table()函数和xtabs()函数得到的是频数表,可以使用prop.table()函数得到频率表,此函数通过margins参数指定频率分母的维度,默认将所有数值相加作为分母。

# 默认将所有数值相加作为分母
prop.table(table.2D)
# 按行计算频率
prop.table(table.2D, margin=1)
# 按列计算频率
prop.table(table.2D, margin=2)

addmargins()函数

此函数可以在列联表中加入边际边,默认边际边求和,也可以通过FUN参数指定其它计算。

边际边是边际频数(marginal frequencies)的简称,它指的是列联表中行总和与列总和。

vcd扩展包中的mar_table()函数也可以同时加入按行或列求和的边际边。

按行和列求和

# 按行求和
addmargins(table.2D, margin=1)
# 按列求和
addmargins(table.2D, margin=2)

同时求行和列的和

# 分别按行和列求和
addmargins(table.2D, margin=1:2)

mar_table(table.2D)

按列求平均

addmargins(table.2D, margin=2, FUN=mean)

margin.table()函数

margin.table(table.2D, margin=1)
margin.table(table.2D, margin=2)

三、同时输出多个统计量

ggplot2包中的diamonds数据集做演示:

此数据集总共只有10列数据。

library(ggplot2)
head(diamonds)

1、summary()函数

此函数R语言内置的统计量集合函数。当数据为数值时,它输出最小值、第1四分位数、中位数、平均数、第3四分位数和最大值;当数据为因子或类别时,它输出各个水平或类别的数量。

summary(diamonds)

 2、describe()函数

psych扩展包的describe()函数输出的结果更丰富,包括数据量、均值、标准差、中位数、截断均值(默认截断比例为0.1),中位数绝对离差、最小值、最大值、全距、偏度、峰度和标准误差。

library(psych)
describe(diamonds)

3、stat.desc()函数

pastecs扩展包中的stat.desc()函数可以通过设置不同的参数来调整输出的统计量。

basic=TRUE(默认):计算观测值、空值和缺失值的数量,计算最大值、最小值、值域以及求和;

desc=TRUE:计算中位数、平均数、均值标准误差、95%的置信区间、方差、标准差以及变异系数;

norm=TRUE:计算正态分布的统计量,如峰度、偏度、显著程度。

library(pastecs)
options(digits=3) # 保留3位小数
stat.desc(diamonds, basic=FALSE, desc=FALSE)

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kafka服务端之日志存储

文章目录 日志布局日志索引日志清理日志删除基于时间基千日志大小基于日志起始偏移量 日志压缩总结 日志布局 Ka饮a 中的消息是以主题为基本单位进行归类的&#xff0c; 各个主题在逻辑 上相互独立。 每个主题又可以分为一个或多个分区&#xff0c; 分区的数量可以在主题创建的…

家用报警器的UML 设计及其在C++和VxWorks 上的实现01

M.W.Richardson 著&#xff0c;liuweiw 译 论文描述了如何运用 UML&#xff08;统一建模语言&#xff09;设计一个简单的家用报警器&#xff0c;并实现到 VxWorks 操作系统上。本文分两个部分&#xff0c;第一部分描述了如何用 UML 设计和验证家用报警器的模型&#xff0c;以使…

数据结构与算法-链表

单向链表&#xff08;带哨兵&#xff09; public class SinglyLinkedList {private Node head new Node(Integer.MIN_VALUE, null); // 定义一个哨兵节点作为头部节点&#xff0c;避免对头节点进行特殊处理// 节点类&#xff0c;包含值和指向下一个节点的引用private static …

剪辑学习整理

文章目录 1. 剪辑介绍 1. 剪辑介绍 剪辑可以干什么&#xff1f;剪辑分为哪些种类&#xff1f; https://www.bilibili.com/video/BV15r421p7aF/?spm_id_from333.337.search-card.all.click&vd_source5534adbd427e3b01c725714cd93961af 学完剪辑之后如何找工作or兼职&#…

自动驾驶数据集三剑客:nuScenes、nuImages 与 nuPlan 的技术矩阵与生态协同

目录 1、引言 2、主要内容 2.1、定位对比&#xff1a;感知与规划的全维覆盖 2.2、数据与技术特性对比 2.3、技术协同&#xff1a;构建全栈研发生态 2.4、应用场景与评估体系 2.5、总结与展望 3、参考文献 1、引言 随着自动驾驶技术向全栈化迈进&#xff0c;Motional 团…

快速提取Excel工作簿中所有工作表的名称?

大家好&#xff0c;我是小鱼。 在Excel表格中如何快速提取工作簿中所有工作表的名称&#xff1f;这个问题在日常工作中也经常遇到&#xff0c;比如说经常使用的INDIRECT函数跨工作表汇总或者制作类似于导航的工作表快捷跳转列表&#xff0c;就需要每个工作表的名称。如果工作表…

【数据结构】(7) 栈和队列

一、栈 Stack 1、什么是栈 栈是一种特殊的线性表&#xff0c;它只能在固定的一端&#xff08;栈顶&#xff09;进行出栈、压栈操作&#xff0c;具有后进先出的特点。 2、栈概念的例题 答案为 C&#xff0c;以C为例进行讲解&#xff1a; 第一个出栈的是3&#xff0c;那么 1、…

从运输到植保:DeepSeek大模型探索无人机智能作业技术详解

DeepSeek&#xff0c;作为一家专注于深度学习与人工智能技术研究的企业&#xff0c;近年来在AI领域取得了显著成果&#xff0c;尤其在无人机智能作业技术方面展现了其大模型的强大能力。以下是从运输到植保领域&#xff0c;DeepSeek大模型探索无人机智能作业技术的详解&#xf…

qt部分核心机制

作业 1> 手动将登录项目实现&#xff0c;不要使用拖拽编程 并且&#xff0c;当点击登录按钮时&#xff0c;后台会判断账号和密码是否相等&#xff0c;如果相等给出登录成功的提示&#xff0c;并且关闭当前界面&#xff0c;发射一个跳转信号&#xff0c;如果登录失败&#…

【Spring】什么是Spring?

什么是Spring&#xff1f; Spring是一个开源的轻量级框架&#xff0c;是为了简化企业级开发而设计的。我们通常讲的Spring一般指的是Spring Framework。Spring的核心是控制反转(IoC-Inversion of Control)和面向切面编程(AOP-Aspect-Oriented Programming)。这些功能使得开发者…

【专题】2024-2025人工智能代理深度剖析:GenAI 前沿、LangChain 现状及演进影响与发展趋势报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p39630 在科技飞速发展的当下&#xff0c;人工智能代理正经历着深刻的变革&#xff0c;其能力演变已然成为重塑各行业格局的关键力量。从早期简单的规则执行&#xff0c;到如今复杂的自主决策与多智能体协作&#xff0c;人工智能代理…

oCam:免费且强大的录屏软件

今天给大家推荐一个非常好的录屏软件。几乎可以满足你日常工作的需求。而且软件完全免费&#xff0c;没有任何的广告。 oCam&#xff1a;免费且强大的录屏软件 oCam是一款功能强大的免费录屏软件&#xff0c;支持屏幕录制、游戏录制和音频录制等多种模式&#xff0c;能够满足不…

spring学习(spring 配置文件详解)

一 了解如何创建基本的spring 配置文件 步骤 1 导入 spring-context 依赖 <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context&l…

C++Primer学习(2.2)

2.2 变量 变量提供一个具名的、可供程序操作的存储空间。C中的每个变量都有其数据类型,数据类型决定着变量所占内存空间的大小和布局方式、该空间能存储的值的范围&#xff0c;以及变量能参与的运算。对C程序员来说,“变量(variable)”和“对象(object)”一般可以互换使用。 术…

无须付费,安装即是完全版!

不知道大家有没有遇到过不小心删掉了电脑上超重要的文件&#xff0c;然后急得像热锅上的蚂蚁&#xff1f; 别担心&#xff0c;今天给大家带来一款超给力的数据恢复软件&#xff0c;简直就是拯救文件的“救星”&#xff01; 数据恢复 专业的恢复数据软件 这款软件的界面设计得特…

【Ubuntu】本地部署Deep Seek(深度求索)大模型的保姆级教程 | 详细教程

杭州深度求索人工智能基础技术研究有限公司(简称“深度求索”或“DeepSeek”)&#xff0c;成立于2023年&#xff0c;DeepSeek是一家专注通用人工智能&#xff08;AGI&#xff09;的中国科技公司&#xff0c;主攻大模型研发与应用&#xff0c;经营范围包括技术服务、技术开发、软…

Ollama + AnythingLLM + Deepseek r1 实现本地知识库

1、Ollama&#xff1a;‌是一个开源的大型语言模型 (LLM)服务工具&#xff0c;旨在简化在本地运行大语言模型的过程&#xff0c;降低使用大语言模型的门槛‌。 2、AnythingLLM&#xff1a;是由Mintplex Labs Inc. 开发的一款全栈应用程序&#xff0c;旨在构建一个高效、可定制、…

网络安全治理架构图 网络安全管理架构

网站安全攻防战 XSS攻击 防御手段&#xff1a; - 消毒。 因为恶意脚本中有一些特殊字符&#xff0c;可以通过转义的方式来进行防范 - HttpOnly 对cookie添加httpOnly属性则脚本不能修改cookie。就能防止恶意脚本篡改cookie 注入攻击 SQL注入攻击需要攻击者对数据库结构有所…

如何利用maven更优雅的打包

最近在客户现场部署项目&#xff0c;有两套环境&#xff0c;无法连接互联网&#xff0c;两套环境之间也是完全隔离&#xff0c;于是问题就来了&#xff0c;每次都要远程到公司电脑改完代码&#xff0c;打包&#xff0c;通过网盘&#xff08;如果没有会员&#xff0c;上传下载慢…

mysql 不是内部或外部命令,也不是可运行的程序或批处理文件

mysql 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件 前言描述1、&#x1f331;环境变量配置&#xff08;高级系统设置&#xff09;&#xff1a;2、&#x1f331;环境变量配置&#xff08;系统属性&#xff09;&#xff1a;3、&#x1f331;环境变量配置&…