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

【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)

 

相关文章:

【R语言】数据分析

一、描述性统计量 借助R语言内置的airquality数据集进行简单地演示&#xff1a; 1、集中趋势&#xff1a;均值和中位数 head(airquality) # 求集中趋势 mean(airquality$Ozone, na.rmT) # 求均值 median(airquality$Ozone, na.rmT) # 求中位数 2、众数 众数&#xff08;mod…...

传输层协议 UDP 与 TCP

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; 前置复盘&#x1f98b; 传输层&#x1f98b; 再谈端口号&#x1f98b; 端口号范围划分&#x1f98b; 认识知名端口号 (Well-Know Port Number) 二&#xf…...

Linux 调用可执行程序

Linux 调用可执行程序 1. system() 函数1.1 system() 函数的声明1.2 system() 函数的不同场景返回值1.3 system() 函数的代码示例 2. exec() 函数族2.1 exec() 函数族的声明2.2 exec() 函数族执行失败的情况2.3 exec() 函数族的代码示例 3. exec() 与 system() 的区别以及使用注…...

Java/Kotlin双语革命性ORM框架Jimmer(一)——介绍与简单使用

概览 Jimmer是一个Java/Kotlin双语框架 包含一个革命性的ORM 以此ORM为基础打造了一套综合性方案解决方案&#xff0c;包括 DTO语言 更全面更强大的缓存机制&#xff0c;以及高度自动化的缓存一致性 更强大客户端文档和代码生成能力&#xff0c;包括Jimmer独创的远程异常 …...

剪辑学习整理

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

IDEA查看项目依赖包及其版本

一.IDEA将现有项目转换为Maven项目 在IntelliJ IDEA中,将现有项目转换为Maven项目是一个常见的需求,可以通过几种不同的方法来实现。Maven是一个强大的构建工具,它可以帮助自动化项目的构建过程,管理依赖关系,以及其他许多方面。 添加Maven支持 如果你的项目还没有pom.xm…...

centos虚拟机迁移没有ip的问题

故事背景&#xff0c;我们的centos虚拟机本来是好好的&#xff0c;但是拷贝到其他电脑上就不能分配ip&#xff0c;我个人觉得这个vmware他们软件应该搞定这个啊&#xff0c;因为这个问题是每次都会出现的。 网络选桥接 网络启动失败 service network restart Restarting netw…...

Java 大视界 -- Java 大数据在智能供应链中的应用与优化(76)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

Java中的继承及相关概念

在 Java 中&#xff0c;继承是一种允许一个类继承另一个类的特性。通过继承&#xff0c;子类可以获取父类的属性和方法&#xff0c;这有助于减少代码冗余并提高代码的可维护性。以下是关于文件内容的相关分析和知识点总结&#xff1a; 一、继承的核心概念 1.继承的语法 Java …...

赛博算命之 ”梅花易数“ 的 “JAVA“ 实现 ——从玄学到科学的探索

hello~朋友们&#xff01;好久不见&#xff01; 今天给大家带来赛博算命第三期——梅花易数的java实现 赛博算命系列文章&#xff1a; 周易六十四卦 掐指一算——小六壬 更多优质文章&#xff1a;个人主页 JAVA系列&#xff1a;JAVA 大佬们互三哦~互三必回&#xff01;&#xf…...

DNS攻击方式有哪些,应该采取哪些应对措施?

在当今数字化时代&#xff0c;网络已成为人们生活和工作不可或缺的一部分。而 DNS&#xff08;域名系统&#xff09;作为互联网的关键基础设施&#xff0c;如同电话簿一般&#xff0c;将人们易于记忆的域名转换为计算机能够识别的 IP 地址&#xff0c;让我们能够轻松访问各类网…...

即梦(Dreamina)技术浅析(六):多模态生成模型

多模态生成模型是即梦(Dreamina)的核心技术之一,旨在结合文本和图像信息,生成更符合用户需求的视觉内容。多模态生成模型通过整合不同类型的数据(如文本和图像),能够实现更丰富、更精准的生成效果。 1. 基本原理 1.1 多模态生成模型概述 多模态生成模型的目标是结合不…...

如何优化爬虫以提高搜索效率

在数据采集和网络爬虫领域&#xff0c;优化爬虫性能是提升数据采集效率的关键。随着网页结构的日益复杂和数据量的不断增长&#xff0c;高效的爬虫能够显著降低运行时间和资源成本。本文将详细介绍如何优化爬虫以提高搜索效率&#xff0c;包括选择合适的工具、优化代码逻辑、使…...

Node.js中http模块(二)

一、http模块 http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供的 http.createServer0) 方法&#xff0c;就能方便的把一台普通的电脑&#xff0c;变成一台 Web 服务器&#xff0c;从而对外提供 Web 资源服务。 二、域名和域名服务器 尽管 I…...

android selinux 问题

参考 Android Selinux介绍&#xff0c;如何添加selinux 权限SELinux权限-总结添加Selinux 权限/常见的Selinux 权限问题为何Android普通APP可以执行私有数据中的so文件&#xff0c;而system app却不可以&#xff1f;Android SELinux权限概念和配置说明Selinux中的APP分类Andro…...

递增三元组(蓝桥杯18F)

暴力求解&#xff1a; #include<iostream> using namespace std; int main() {int N;cin >> N;int* A new int[N];int* B new int[N];int* C new int[N];for (int i 0; i < N;i) {cin >> A[i];}for (int i 0; i < N; i) {cin >> B[i];}for…...

计算机毕业设计SparkStreaming+Kafka广告推荐系统 广告预测 广告数据分析可视化 广告爬虫 大数据毕业设计 深度学习 机器学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

FreeCAD创建零件(系列1)

1、新建草图绘制1个矩形 2、画1个半圆弧 3、增加一个约束点 4、标注距离 5、将线段转为辅助线 将图中的线段切换为辅助线,线条颜色之后转为蓝色线。 6、离开草图...

韶音科技:消费电子行业售后服务实现数字化转型,重塑客户服务体系

韶音科技&#xff1a;消费电子行业售后服务实现数字化转型&#xff0c;重塑客户服务体系 在当今这个科技日新月异的时代&#xff0c;企业之间的竞争早已超越了单纯的产品质量比拼&#xff0c;**售后服务成为了衡量消费电子行业各品牌实力与客户满意度的关键一环。**深圳市韶音…...

mes系统对工业数字化转型起到重要作用,它的实际应用有哪些

一、生产计划与调度 在工业数字化转型中&#xff0c;MES 系统能够对生产计划进行高效的管理和调度。通过与企业资源计划&#xff08;ERP&#xff09;系统的集成&#xff0c;MES 可以获取生产订单信息&#xff0c;并根据生产设备的状态、人员安排以及物料供应情况等因素&#x…...

mongodb 使用内存过大分析

os 分析 内存使用 ps aux|head -1;ps aux|grep -v PID|sort -rn -k 4|head -10swap 使用 for i in $(ls /proc | grep "^[0-9]" | awk $0>100); do awk /Swap:/{aa$2}END{print "$i",a/1024"M"} /proc/$i/smaps;done| sort -k2nr | headmo…...

网络安全:挑战、技术与未来发展

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 在数字化时代&#xff0c;网络安全已成为全球关注的焦点。随着互联网的普及和信息技术的高速发展&#xff0c;网络攻击的…...

从零开始玩转Docker:轻松开启容器化之旅

一、什么是 Docker Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。简单来说&#xff0c;Docker 就像是一个超级 “快递箱”&#xff0c…...

Python Pandas(5):Pandas Excel 文件操作

Pandas 提供了丰富的 Excel 文件操作功能&#xff0c;帮助我们方便地读取和写入 .xls 和 .xlsx 文件&#xff0c;支持多表单、索引、列选择等复杂操作&#xff0c;是数据分析中必备的工具。 操作方法说明读取 Excel 文件pd.read_excel()读取 Excel 文件&#xff0c;返回 DataF…...

预算限制下R1推理模型的复制与LLM推理能力提升策略

摘要 在预算有限的情况下&#xff0c;复制R1推理模型并增强大型语言模型&#xff08;LLM&#xff09;的推理能力成为研究热点。本文介绍四种主要构建方法&#xff1a;微调预训练模型、设计轻量级架构、迁移学习及知识蒸馏。每种方法各有优势&#xff0c;适用于不同场景。同时&a…...

数据库基础练习4(有关索引,视图完整解答)

建立需要的表 学生表 mysql> create table studnet(sno int primary key auto_increment,sname varchar(30) not null unique,ssex varchar(2) check (ssex男 or ssex女) not null ,sage int not null,sdept varchar(10) default 计算机 not null); Query OK, 0 rows affe…...

【计组】实验五 J型指令设计实验

目录 一、实验目的 二、实验环境 三、实验原理 四、实验任务 代码 一、实验目的 1. 理解MIPS处理器指令格式及功能。 2. 掌握lw, sw, beq, bne, lui, j, jal指令格式与功能。 3. 掌握ModelSim和ISE\Vivado工具软件。 4. 掌握基本的测试代码编写和FPGA开发板使用方法。 …...

Redis03 - 高可用

Redis高可用 文章目录 Redis高可用一&#xff1a;主从复制 & 读写分离1&#xff1a;主从复制的作用2&#xff1a;主从复制原理2.1&#xff1a;全量复制2.2&#xff1a;增量复制&#xff08;环形缓冲区&#xff09; 3&#xff1a;主从复制实际演示3.1&#xff1a;基本流程准…...

SAP HCM自定义开发程序调用odata api 如何ping外网

网络&#xff1a;我们知道SAP系统一般是部署在内网&#xff0c;Successfactors是云系统&#xff0c;部署在公有云上面&#xff0c;那肯定是公网&#xff0c;那内网和外网数据传递就需要网络做相关的设置&#xff0c;今天遇到的问题是网络说已经把SAP系统映射到公网&#xff0c;…...

SAP HCM PFCG读取结构化权限参数

权限&#xff1a;HCM的权限分两套&#xff0c;一套是PFCG的普通权限&#xff0c;一套是结构化权限是根据组织ID限制访问权限的&#xff0c;今天我们讨论的话题如何把这两类的权限组合起来 场景&#xff1a;例如下载有个薪酬管理人员&#xff0c;他复制A和B部门&#xff0c;但是…...