R语言 | 数据汇总与简单图表制作

news2024/11/19 1:31:02

目录

一、准备工作

1.1 下载MASS扩展包与crabs对象

1.2 准备与调整系统内建state相关的对象

1.3 准备mtcars对象

 二、了解数据的唯一值

三、基础统计知识与R语言

3.1 数据的集中趋势

3.1.1 认识统计学名词——平均数

3.1.2 认识统计学名词——中位数

3.1.3 认识统计学名词——众数

3.2 数据的离散程度

3.2.1 认识统计学名词——标准差、方差

3.2.2 认识统计学名词——极差

3.3.3 认识统计学名词——四分位数

3.3.4 认识统计学名词——百分位数

3.3 数据的统计

3.3.1 计数值

3.3.2 table对象

3.3.3 计算占比

3.3.4 再看众数

3.4.5 which.max()函数

四、使用基本图表认识数据

4.1 绘制直方图

4.1.1 设定直方图的标题

 4.1.2 设定直方图的矩形数

4.2 绘制密度图

4.3 在直方图内绘制密度图

五、认识数据汇集整理函数summary()

六、绘制箱形图

七、数据的相关性分析

7.1 iris对象数据的相关性分析

7.2 stateUSA对象数据的相关性分析

7.3 crabs对象数据的相关性分析

 八、使用表格进行数据分析

8.1 简单的表格分析与使用

8.2 从无到有建立一个表格数据

8.3 分别将矩阵与表格转成数据框

8.4 边际总和

8.5 计算数据的占比

8.6 计算行与列的数据占比


一、准备工作

1.1 下载MASS扩展包与crabs对象

crabs数据框是澳大利亚收集的公、母(参杂蓝、橘2色)各100只螃蟹,共计200只的测量数据。

其中sex字段是公母,CL是螃蟹甲壳长度,CW是螃蟹甲壳宽度。

1.2 准备与调整系统内建state相关的对象

 1.3 准备mtcars对象

 二、了解数据的唯一值

对于某些数据框的变量字段的数据元素而言,到底是以数值呈现还是以因子呈现较好,完全视所需要分析的数据类型而定,基本原则是若数据可以当作分类数据,则可以考虑改成因子。另外,也可以由数据的唯一值的计数判断,一般计数值少的字段也适合改成因子。

三、基础统计知识与R语言

对于大量的数据集我们多会研究两个基本性质,一个是集中趋势,另一个是离散程度。

3.1 数据的集中趋势

通常数据会聚集在中位数附件,这样的模式就被称为集中趋势,中位数也可以看作是数据的中心代表,常被用来测量集中趋势的指标有以下三种:平均数、中位数、众数。

3.1.1 认识统计学名词——平均数

所谓的平均数是指在一个数据集中,所有观察值的总和除以观察值总个数所得的数值。

在R语言中,可以使用mean()函数获得平均值。

3.1.2 认识统计学名词——中位数

所谓中位数是指一组可排序的数据中,将数据切成后50%及前50%的值(或是最中间的值),也就是将数据排序以后恰好有一半的数据大于中位数,也恰有一半的数据小于或等于中位数。简单说如果数据量是奇数,最中间的数字就是中位数;如果数据量是偶数,则最中间的两个数字的平均值就是中位数。在R语言中,可以使用median()函数获得中位数。

 

3.1.3 认识统计学名词——众数

所谓众数是指在数据集中,出现次数最多的值。R语言中目前没有求众数的函数。

3.2 数据的离散程度

衡量离散(变化)程度的标准有标准差、方差、极差、四分位数、百分位数等。

3.2.1 认识统计学名词——标准差、方差

sd():标准差函数。

var():方差函数。 

 

3.2.2 认识统计学名词——极差

所谓极差是指数据集中最大观察值减掉最小观察值所得的数值,实际上可想成数据的范围。

事实上R语言提供了range()函数,可列出数据的最大值与最小值。

3.3.3 认识统计学名词——四分位数

所谓四分位数是指将数据集(由小到大)分成4等份的三个数值,其中第1个四分位数通常为第25%的数值,第2个四分位数也就是中位数(通常为第50%的数值),而第3个四分位数通常为第75%的数值。我们可以利用quantile()函数取得这些值。

对上述实例而言,共有8个数据,所以第2个四分位数也就是中位数,序位的计算为(8+1)/2=4.5,也就是第4个数据和第5个数据的平均值,得到的结果为(11+23)/2=17;第1个四分位数(也就是25%)的序位数是由序位的最小值1与中位数的序位数4.5取平均数,即(1+4.5)/2=2.75,再由第2个数据和第3个数据取内插求得,所以是(3+0.75*(5-3)),得到的结果是4.5,依此类推。

3.3.4 认识统计学名词——百分位数

所谓百分位数是指将数据由大到小等分为100份的数值,我们一样是可以使用quantile()函数计算此百分位数。

3.3 数据的统计

3.3.1 计数值

计数主要应用在数据框内的因子中,计算某个因子元素的数据出现的次数或称频率。我们常用table()函数执行这个任务,也可以将这个table()函数的返回结果称为频率表。

3.3.2 table对象

table()函数产生了表格数据"table",这个结果与一维数组相同,对于数组数据而言,可以有一到多维的表格,每个维度的表格又可以有各自的名称。

3.3.3 计算占比

3.3.4 再看众数

 

众数不是唯一的,如果发生出现次数相同情况,这些元素都将是众数。

3.4.5 which.max()函数

R语言中提供了which.max()函数,可以求得对象的最大值,我们也可以使用这个函数的最大值求众数。

which.max()函数将只传回第1个数据。 

四、使用基本图表认识数据

4.1 绘制直方图

直方图是根据数据分布情况,自动选择有利于表现数据的柱宽作为x轴间隔,以频数(或称计数)或者百分比作为y轴的一系列连接起来的数据分布图。直方图的优点是不论数据样本数量的多寡都能使用直方图。

注:使用R语言绘制数据图时,若使用PC的Windows系统则可以在数据图内加注中文字,但目前在数据图内加注中文字的功能并不支持macOS系统上的R语言环境。

 

 上述图形的主标题、x轴和y轴标题均是默认的。

4.1.1 设定直方图的标题

其实在hist()函数中,可以加上下列参数。

main:图表标题。

xlab:x轴标题。

ylab:y轴标题。

 

 

 4.1.2 设定直方图的矩形数

在hist()函数内,可以直接指定直方图矩形的数量。

另外,也可以直接使用breaks参数,设定矩形的区间。

 

4.2 绘制密度图

R语言有提供密度函数density(),可以将欲建图表的数据利用这个函数转成一个密度对象列表,然后将这个对象放入plot()函数内就可以绘制密度图。

与hist()函数一样,可以使用下列参数设置图的标题。

main:图表标题。

xlab:x轴标题。

ylab:y轴标题。 

 4.3 在直方图内绘制密度图

R语言允许在直方图内加上密度图,若想达到这个目标,在使用hist()函数时,需增加下列参数。

freq=FALSE

然后执行下列函数:

lines()

五、认识数据汇集整理函数summary()

summary()函数可以传回数据分布的信息。

由上述两个实例,我们可以获得下列信息:

(1)数值变量:会列出最小值、最大值、平均值、第1个四分位值、中位值(也可想成第2个四分位数)、第3个四分位值。如果有NA值,也会列出NA值的数量。

(2)因子:列出频率表,如果有NA值,也会列出NA值得数量。

(3)字符串变量:列出字符串长度。

在上述两个实例中,对stateUSA对象使用summary()函数后所获得得结果是完美得。但仔细看对mycar对象使用summary()函数后得输出结果,在cyl变量和gear变量中均可发现最小值和第1个四分位值相同,为了避免这种状况,在以后碰到类似得数据时,只要将他们转成因子即可。

六、绘制箱形图

 

上述boxplot()函数得第1个参数,如下所示,其实是一个公式。

mpq~cyl

其意义是与变量cyl类别(可想成气缸数)相关得mpg数值,将被带入boxplot()函数中运算,而箱形图各线条意义如下所示:

  • 箱子上下边缘线条:代表上四分位数和下四分位数。
  • 横向贯穿箱子粗线条:中位数。
  • 纵向贯穿箱子的线条:是最大值与最小值或是上下四分位间距离的1.5倍。

 之前使用的main参数仍可以用在这里,用于列出箱形图的标题,"col="参数仍可用于产生彩色箱形图。

 

  

其实如果仔细看上述箱形图,可以看到Northeast、South和West上方有空心原点,那才是真正的线段的最大值(在其他实例中也许会在线段下方看到空心圆点,此时是代表线段的最小值),若是希望箱形图线段指向最大或最小值,可以在boxplot()函数加上参数"range=0"。

七、数据的相关性分析

统计学中,用于反映两个变量向量的相关程度的指标称为相关系数,相关系数的数值在-1至1之间;越靠近1的相关系数数值代表正相关越强,而越靠近-1的相关系数数值代表负相关性越强;而靠近在0附近则表示两变量之间的线性相关是相对微弱的。

7.1 iris对象数据的相关性分析

在R语言中,想要了解相关性系数可以使用cor()函数。

 

我们可以利用plot()函数,绘出两两不同变量间的相关系数散点图。

 在上述实例中,使用plot()函数执行绘制散点图的任务。当发现所传入的参数是数据框时,调用pairs()函数也可以执行绘制散点图的任务。

 

 最后使用cor()函数需考虑数据中有NA值的情形,此时需使用参数"use=",其基本方法如下:

  • 参数use="everything"是默认值,若是向量变量元素中有NA,则该元素的计算结果也是NA。
  • 参数use="complete",不处理NA值,此时只计算非NA值的部分。
  • 参数use="pairwise",对变量内有NA值的向量不予计算。

7.2 stateUSA对象数据的相关性分析

 

7.3 crabs对象数据的相关性分析

 八、使用表格进行数据分析

8.1 简单的表格分析与使用

8.2 从无到有建立一个表格数据

 8.3 分别将矩阵与表格转成数据框

 8.4 边际总和

在数据分析过程中,我们很可能会对表格的行或列进行加总运算,所得值我们称为边际总和,我们可以使用以下函数:

addmargins(A,margin)

A:表格数据或数组。

margin:若省略则列与行皆计算,若为1则计算“列”,所以“行”会增加Sum字段,若为2则计算“行”,所以“列”会增加Sum字段。

 

8.5 计算数据的占比

R语言中提供的prop.table()函数可以计算数据的占比。

上述计算的是在全部受测者中的比例。

8.6 计算行与列的数据占比

利用prop.table()函数时,也可以通过增加参数margin,实现只针对行和列做计算。

  

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

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

相关文章

Adobe Photoshop 2022版 功能介绍及使用技巧

目录 版本介绍: 使用技巧: 截图展示: 分享 版本介绍: Adobe Photoshop 2022是Adobe公司的一款专业的图像处理软件,它提供了强大的图像处理功能,从色彩调整,图层处理到高级合成等功能。新版…

webhub123 硬件工程师学习和交流、问答各类网站集合

硬件不像软件开源共享的多,硬件的开发和学习相对不自由,能收集到资料有限。为了帮硬件开发工程找到更多大门,我们整理了一些学习、交流的优质网站,收录到 webhub123 硬件工程师学习和交流、问答各类网站集合http://​www.webhub12…

有没有中国版本的ChatGPT?

ChatGPT是一个基于人工智能的聊天机器人,它可以与用户进行自然语言交互。ChatGPT使用了最新的自然语言处理技术,包括深度学习和神经网络,以便更好地理解用户的意图和回答用户的问题。 ChatGPT可以回答各种问题,包括但不限于常见问…

截面空间计量模型(Stata)

截面空间计量模型(Stata) 文章目录 截面空间计量模型(Stata)[toc]1 广义空间自回归模型(SAC)2 空间误差模型(SEM)3 空间杜宾模型(SDM)4 广义空间嵌套模型(GNS)5 空间(自回归)滞后模型(SAR,SLM)6 空间杜宾误差模型(SDEM) 1 广义空间自回归模型&#xff08…

JUC并发编程14 | ThreadLocal

尚硅谷JUC并发编程(100-111) ThreadLocal ThreadLocal 使用 ThreadLocal是什么?ThreadLocal 提供线程局部变量。这些变量与正常的变量有所不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法&…

UNIAPP实战项目笔记68 购物车勾选到订单确认

UNIAPP实战项目笔记68 购物车勾选到订单确认 思路 需要用到vuex 页面间传值 案例截图 订单结算页面 购物车页面 确认订单页面 支付页面 代码 前端代码 购物车页面 shopcart.vue <template><view class"shop-cart"><template v-if" list.l…

启扬方案助力智能配送终端,打造智能取件新模式!

随着快递业务的不断发展和智能化程度的提高&#xff0c;智能快递柜已经成为了快递末端配送的新型解决方案&#xff0c;智能快递柜不仅可以提高用户取件的便捷性和安全性&#xff0c;还减少了人工成本&#xff0c;同时提高了快递配送的效率和服务质量&#xff0c;这也使得智能快…

2022年美国大学生数学建模竞赛C题贸易策略解题全过程文档及程序

2022年美国大学生数学建模竞赛 C题 贸易策略 原题再现&#xff1a; 背景:   市场贸易者经常购买和销售股票&#xff0c;目标是最大化他们的总回报。针对每次购买和销售&#xff0c;经常会存在回报提成。两个案例是金子和比特币。   要求:   你们团队被贸易者要求建立一…

Js中的微任务和宏任务

1.前言 任务可以分成两种&#xff0c;一种是同步任务&#xff08;synchronous&#xff09;&#xff0c;另一种是异步&#xff08;asynchronous&#xff09;&#xff0c;异步任务又分为宏任务和微任务。 同步任务&#xff1a;在主线程上排队执行的任务&#xff0c;只有前一个任…

C++11 -- 右值引用和移动语义

文章目录 基本概念左值和左值引用右值和右值引用 右值引用和移动语义的意义和使用场景左值引用与右值引用比较右值引用的特殊场景左值引用的短板右值引用和移动语义 完美转发模板中的&&万能引用完美转发在传参过程中保留原生类型属性完美转发实际中的使用场景 基本概念…

如何用ChatGPT分析品牌舆论传播概况,并给到处理建议?

该场景对应的关键词库&#xff08;25个&#xff09;&#xff1a; 舆论传播、数据分析、主题、事件、时间段、媒体渠道、数据来源、情感分析、关键词提取、主题挖掘、大众集中讨论的话题、讨论关注程度、舆论关注倾向、关联类似事件、聚焦某一种情绪、人群范围、事件涉及群体、谁…

企业电子招标采购系统源码java 版本 Spring Cloud + Spring Boot

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及…

程序员的职场,光有技术是不行的,送给每个即将工作的程序员

又是一年五月份&#xff0c;大批量学计算机的学生又要涌入职场了&#xff0c;牛皮的已经早早找到了工作&#xff0c;但不管你技术再牛&#xff0c;在程序员的职场&#xff0c;光有技术是不行的&#xff0c;你还要懂得一些职场的雷坑和上升技巧。 我做了二十多年程序员&#xf…

Stable diffusion教程 - 提示词汉化

1. 介绍 安装stable diffusion后&#xff0c;可能英语不熟悉&#xff0c;可能提示词不熟悉&#xff0c;写提示词就比较困难。 这款提示词汉化插件&#xff0c;配合中文词库输入中文就能提示相关提示词&#xff0c;用起来超级方便&#xff0c;示例如下&#xff1a; 输入“花”…

windows下搭建局域网的mysql.md

场景&#xff1a;公司的需要搭建一个局域网的mysql服务器&#xff0c;利用phpstudy傻瓜式安装后&#xff0c;用本机访问&#xff0c;提示 1130 - Host ‘DESKTOP-IRSGN4A’ is not allowed to connect to this MySQL server mysql 安装软件 1、命令行进入mysql 首先我们需要进…

Python基础入门编程代码练习(六)

一、模拟房产经纪人来管理房屋信息 编写业务实现 家具类&#xff1a;HouseItem 属性&#xff1a;名字 name&#xff0c;占地面积 area 方法&#xff1a;__init__ , __str__ 类名&#xff1a;房子类 House 属性&#xff1a;户型 name&#xff0c;总面积&#xff1a;total_are…

为什么编程都建议不要用拼音命名

一、场景 我们看看知乎答主举的搞笑例子&#xff0c;一句话全部都是shi&#xff0c;表达起来确实困难。 二、原因 上面这个回答&#xff0c;一句话全部都是“shi”&#xff0c;表达起来确实困难。并且让人误解 那么编程都建议不要用拼音命名&#xff0c;主要有以下原因&…

数据结构_栈、队列和数组

目录 1. 栈 1.1 栈的定义 1.2 栈的基本操作 1.3 栈的顺序存储结构 1.3.1 顺序栈 1.3.2 顺序栈的基本运算 1.3.3 共享栈 1.4 栈的链式存储 1.5 栈相关应用 2. 队列 2.1 队列的定义 2.2 队列的基本操作 2.3 队列的顺序存储 2.4 循环队列 2.4.1 循环队列的操作 2.…

2023年全国职业院校技能大赛-大数据应用开发-数据可视化

可视化题目与以往相同&#xff0c;做法类似&#xff0c;我这里展示得到语句后处理优化以后的代码&#xff0c;以函数式来写可视化&#xff0c;比以前400-500多行代码简洁到100多行。其他题目见本栏目&#xff0c;那里面的代码都是没有优化后的&#xff0c;这次主要以效率和精简…

提升曝光率!掌握Facebook帖子关键词采集技巧

如何提高Facebook帖子的曝光率成为了每个营销人员的关注焦点。掌握Facebook帖子关键词采集技巧&#xff0c;可以帮助你更好地定位受众&#xff0c;增加帖子的曝光和点击率。在本文中&#xff0c;我们将详细介绍一些有效的技巧和策略&#xff0c;让你成为Facebook帖子关键词的专…