R语言统计分析——整合和重构

news2024/11/17 15:34:48

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

        R中提供了许多用来整合(aggregate)和重塑(reshape)数据的强大方法。在整合数据时,往往将多组观测替换为根据这些观测计算的描述性统计量。在重塑数据时,则会通过修改数据的结构(行和列)来决定数据的组织方式。

1、转置

        使用函数t()即可对一个矩阵或者数据框进行转置,对于后者,行名将变成列名。

cars<-mtcars[1:5,1:4]
cars
t(cars)

2、整合数据

        在R中使用一个或多个by变量和一个预先定义好的函数来折叠(collapse)数据是比较容易的。调用格式为:

        aggregate(x,by,FUN)

其中,x是待折叠的数据对象,by是一个变量名组成的列表,这些变量将被去掉以形成新的观测,而FUN则是用来计算描述性统计量的标量函数,它将被用来计算新观测的值。

options(digits=3)
attach(mtcars)
aggdata<-aggregate(mtcars,by=list(cyl,gear),FUN=mean,na.rm=TRUE)
detach(mtcars)
aggdata

attach(mtcars)
aggdata<-aggregate(mtcars,by=list(Group.cyl=cyl,Group.gear=gear),FUN=mean,na.rm=TRUE)
detach(mtcars)
aggdata

        在aggregate()函数中,by中的变量必须是一个列表(即使只有一个变量)。我们可以在列表中为各组声明自定义的名称,例如:my=list(Group.cyl=cyl,Group.gears=gear)。指定的函数可以是任意的内建函数或自定义函数。

3、reshape2包

        reshape2包是一套重构和整合数据集的绝妙的万能工具。由于reshape2包并未安装在R的标准安装中,在第一次使用它之前需要使用install.packages("reshape2")进行安装。

        大致来说,我们需要首先将数据融合(melt),以使每一行都是唯一的标识符-变量组合。然后将数据重铸(cast)为我们想要的任何形状。在重铸过程中,我们可以使用任何函数对数据进行整合。

library(reshape2)

ID<-c(1,1,2,2)
Time<-c(1,2,1,2)
X1<-c(5,3,6,2)
X2<-c(6,5,1,4)
mydata<-data.frame(ID,Time,X1,X2)
mydata

(1)融合

        数据集的融合是将它重构为这样一种格式:每个测量独占一行,行中带有要唯一确定这个测量所需的标识符变量。

md<-melt(mydata,id=c('ID','Time'))
md

        注意,必须指定要唯一确定每个测量所需的变量(本例是ID和Time),而表示测量变量名的变量(本例是X1和X2)将由程序自动创建。

(2)重铸

        dcast()函数读取已融合的数据,并使用我们提供的公式和一个(可选的)用于整合数据的函数将其重塑。调用格式为:

        newdata<-dcast(md,format,fun.aggregate)

其中,md为已融合的数据,formula描述了想要的最后结果,而fun.aggregate是(可选的)数据整合函数。其接受的公式形式如:

        rowvar1+rowvar2+...~colvar1+colvar2+...

        在这一公式中,rowvar1+rowvar2+...定义了要划掉的变量集合,以确定各行的内容,而colvar1+colvar2+...则定义了要划掉的、确定各列内容的变量集合。如下图:

        由于上图中右侧(d,e和f)的公式中未包含某个函数,所以数据仅被重塑了。反之,左侧的示例(a、b和c)中指定了mean作为整合函数,从而就对数据同时进行了重复和整合。

# a
dcast(md,ID~variable,mean)
# b
dcast(md,Time~variable,mean)
# c
dcast(md,ID~Time,mean)
# d
dcast(md,ID+Time~variable)
# e
dcast(md,ID+variable~Time)
# f
dcast(md,ID~variable+Time)

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

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

相关文章

【Unity插件】Editor Console Pro:提升开发效率的神器

在 Unity 开发过程中&#xff0c;控制台&#xff08;Console&#xff09;是我们排查错误、获取信息的重要窗口。而 Editor Console Pro 则是 Unity 编辑器控制台的强大替代品&#xff0c;为 Unity 的控制台带来了更多实用的功能和改进&#xff0c;极大地提升了开发效率。 一、…

[硬件]-电路噪声

电路噪声 1.电路噪声来源 本征噪声&#xff1a;晶体管、电阻&#xff1b;外部噪声&#xff1a;电源、参考、偏置、衬底、串扰&#xff1b; 将电路的输入短接&#xff0c;理想情况下输出为0&#xff0c;但实际输出不为0&#xff0c;即为电路噪声。 2.噪声大小衡量方法 2.1 时…

【Oracle 进阶之路】Oracle 简介

一、简述 Oracle Database&#xff0c;又名Oracle RDBMS&#xff0c;或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统&#xff0c;系统可移植性好、使用方便、功能强&…

初学Mybatis之多对一查询 association 和一对多查询 collection

XML 映射器 多对一&#xff1a;关联&#xff08;association&#xff09; 一对多&#xff1a;集合&#xff08;collection&#xff09; mysql 创建教师、学生表&#xff0c;插入数据 create table teacher(id int(10) primary key,name varchar(30) default null ) engineI…

Meta 发布地表最大、最强大模型 Llama 3.1

最近这一两周看到不少互联网公司都已经开始秋招提前批了。不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球友解…

简单几步,把浏览器书签转换成导航网页

废话不多说直奔主题上干货 Step 1 下载浏览器书签 1&#xff0c;电脑浏览器点击下载Pintree Pintree 是一个开源项目&#xff0c;旨在将浏览器书签导出成导航网站。通过简单的几步操作&#xff0c;就可以将你的书签转换成一个美观且易用的导航页面。 2. 安装 Pintree B…

《Java初阶数据结构》----10.<Map和Set---TreeSet和TreeMapHashSet和HashMap >

前言&#xff1a; 大家好&#xff0c;我目前在学习java。我准备利用这个暑假&#xff0c;来复习之前学过的内容&#xff0c;并整理好之前写过的博客进行发布。如果博客中有错误或者没有读懂的地方。热烈欢迎大家在评论区进行讨论&#xff01;&#xff01;&#xff01; 喜欢我文…

高并发内存池(四)Page Cache的框架及内存申请实现

目录 一、Page Cache的框架梳理 二、Page Cache的实现 2.1PageCache.h 2.2VirtualAlloc 2.3std::unordered_map _idSpanMap,> 2.4Page Cache.cpp 一、Page Cache的框架梳理 申请内存&#xff1a; 1. 当central cache向page cache申请内存时&#xff0c;page cache先检…

2024年7月29日 十二生肖 今日运势

小运播报&#xff1a;2024年7月29日&#xff0c;星期一&#xff0c;农历六月廿四 &#xff08;甲辰年辛未月甲午日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;羊、虎、狗 需要注意&#xff1a;兔、牛、鼠 喜神方位&#xff1a;东北方 财神方位&#xff1a;…

论文阅读:Deformable DETR: Deformable Transformers for End-to-End Object Detection

论文阅读&#xff1a;Deformable DETR: Deformable Transformers for End-to-End Object Detection Deformable DETR: 基于稀疏空间采样的注意力机制&#xff0c;让DCN与Transformer一起玩&#xff01; - 知乎 (zhihu.com) 【Deformable DETR 论文源码解读】Deformable Trans…

Linux嵌入书学习—数据结构——栈(seqstak)

一、栈&#xff1b; 定义&#xff1a; 是限定仅在表尾&#xff08;栈顶&#xff09;进行插入和删除操作的线性表 栈又称为 后进先出&#xff08;Last In First Out&#xff09; 的线性表&#xff0c;简称 LIFO 结构 栈顶&#xff08;Top&#xff09; 栈顶是栈中允许进行添加&…

构建大规模账号池与本地部署:GitHub爬虫项目详解

账号池搭建 必要性 常见登录方式&#xff1a; 基于Session Cookie的登录基于JWT的登录&#xff1a;登录生成JWT字符串 账号池存储cookie或者JWT字符串 方便后续发请求爬取数据 本地部署 conda建立一个虚拟环境 conda create -n new_env python3.x # 替换 x 为你需要的 P…

【 C++ 】 类和对象的学习

前言&#xff1a; &#x1f618;我的主页&#xff1a;OMGmyhair-CSDN博客 目录 引言&#xff1a; 一、类的作用域 二、计算类对象的大小 三、this指针 this指针❓1 this指针❓2 this指针❓3 引言&#xff1a; 通过类我们可以对数据和方法进行封装 封装的意义&#xf…

【Android】实现一个优雅的自定义底部导航栏(速通安卓大作业必备)

文章目录 前言一、实现思路二、代码实现流程①修改theme&#xff1a;②在color文件中添加颜色&#xff1a;③添加图标文件④添加选中时布局的背景⑤修改布局文件⑥按钮效果图&#xff1a;⑦修改MainActivity中的代码⑦创建各个界面的Fragment⑧运行结果&#xff1a; 三、 总结 …

【学术会议征稿】第五届人工智能与教育国际学术会议(ICAIE 2024)

第五届人工智能与教育国际学术会议&#xff08;ICAIE 2024&#xff09; 2024 5th International Conference on Artificial Intelligence and Education 第五届人工智能与教育国际学术会议&#xff08;ICAIE 2024&#xff09;由集美大学诚毅学院主办&#xff0c;闽南师范大学…

福昕PDF编辑器v13专业版 授权版

福昕高级PDF编辑器是一款功能强大的PDF文件编辑软件&#xff0c;提供多种实用的编辑功能。 软件截图&#xff1a; 使用说明&#xff1a; 解压后&#xff0c;双击start.bat来运行软件 下载地址&#xff1a;FoxitPDFEditor-Pro-v13 解压密码&#xff1a;helloh 下载时可能会有…

动手学大模型应用开发笔记--用dash开发一个大模型知识库

简介 动手学&#xff0c;把自己学到的东西动手自己做出来并输出&#xff0c;是最好的学习方式。最近一直在关注和使用各种ai工具&#xff0c;也在学一些ai开发的知识&#xff0c;看到datawhale的开源学习教程&#xff0c;动手学大模型开发( [github.com/datawhalech…])这个教…

高频面试题基本总结回顾(含笔试高频算法整理)暂存篇

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…

dockerfile部署镜像 ->push仓库 ->虚拟机安装建木 ->自动部署化 (详细步骤)

目录 创建私服仓库 vi /etc/docker/daemon.json vim deploy.sh判断脚本内容 创建 建木 后端部署 命名空间 设置密码用户名 创建git仓库 gitignore文件内容 图形项目操作 git maven docker镜像 点击流程日志 vim /etc/docker/daemon.json 执行部署脚本 ip 开发…

代码性能优化(3)——聊聊多线程

代码的性能优化&#xff0c;有些是从逻辑层面进行的&#xff0c;比如同时对50W个人发放奖励&#xff0c;可以改成用户登录的时候&#xff0c;自动领取有没奖励&#xff0c;或者统计每日的每个业务员的销售额和实时累积的销售额&#xff0c;将实时sum函数改成&#xff0c;每一笔…