设为首页收藏本站

JMP数据分析论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2102|回复: 0
打印 上一主题 下一主题

数据清洗之“堆叠”—多列数据合并处理的神器

[复制链接]
跳转到指定楼层
楼主
发表于 2020-11-16 14:51:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据分析过程中,有时候我们经常需要将多列指标合并为一列,比如将一个100人5个观察时间点生成的100行5列数据表,转换成500行1列的数据表,从而满足作图、分析的进一步需求。那么,在JMP中如何快速实现呢?今天这篇文章我们将介绍数据转换的神器之——“堆叠”,帮助你快速搞定数据的转换。

为了帮助更多的临床医师学习如何运用JMP高效地开展数据分析,提高日常工作和发表论文的效率,2020年8月起,JMP资深用户、JMP特约专栏作者、资深统计学家冯国双博士及其团队将在JMP数据分析平台为大家分享一系列统计及数据分析、JMP实战操作、JMP分析报表解读等干货内容,每期一个经典话题,帮助大家掌握一个新技能。值得注意的是,这些话题并非仅针对临床医师,对所有运用JMP软件开展数据分析的小伙伴都适用。本文为此系列文章的第五期。点击专题或文末可回顾其他几期。

在数据分析时中,我们经常会遇到这种情形:一个人同时有多个主要分析指标(如随访数据中的多个时间点数据),在数据录入时,通常是将其分别录入在不同列(如5个时间点数据,分5列录入)。这种录入虽然看起来直观,但在数据分析时,有时却需要将这几列指标放置在1列中(如将5列指标放在1列中,同时新产生1列标识5个时间点)。

很多人在这时就有点犯愁,如果是5列还好,逐个复制也花费不了多少时间。但如果是20列甚至更多的列呢?且不说费时费力,逐个复制粘贴也容易发生错误。今天我们请出来的“堆叠”,就是专为这种需求而存在的。它可以实现快速将多列合并为1列,同时新增一个标识变量,以显示不同指标。


下面我们就用JMP自带的示例数据来演示一下如何实现数据的堆叠。

JMP软件内置了很多示例数据,可在最上方的菜单栏帮助→样本数据库中看到(图1),此外,打开帮助→JMP文档库,你就可以看到目前最全最详细、长达六千余页的JMP帮助手册,样本数据库均为里面的教学演示服务。

图1  JMP帮助文档及示例数据


这次我们作为讲解示例的是样本数据库中的Blood Pressure.jmp数据文件。数据的整体情况如图2所示。

图2 示例数据


20个被测者分为四组,变量BP 8M的含义是周一的八点血压测量值。所以该数据记录的是每个被测者分别于周一、周三和周五每日三个不同时间点的血压测量值。没错,这是标准的重复测量数据,临床上有很多医生收集的数据都是这样的格式。

多列指标堆叠为一列指标

首先,想象一下这样的情境,得到数据之后,你想比较一下四组被测者的血压测量值是否有差异,这时,血压测量值变成了因变量y,测量时间点和分组变成了自变量x1和x2,目前的数据格式,显然不符合我们接下来分析的要求。


我们需要将9个时间点的列进行堆叠,形成两列,一列时间点,另一列测量值,且一一对应。在JMP里该怎样操作呢?只需一步!


堆叠的操作在菜单栏表→堆叠,点开后可见图3所示对话框。

图3  列堆叠对话框


•        红色方框中显示我们要堆叠的列,这个示例数据中,我们需要将BP 8M至BP 6F九个变量均拖入到该框中;
•        蓝色方框中填入新生成数据表的名称;
•        绿色椭圆框中是新建列名称。由于我们堆叠完成后会形成两个新变量,一个是时间点(源标签列),一个是血压测量值(堆叠数据列),我们可以分别为其设定变量名,如果不做修改,则新变量会采用系统默认的【数据】和【标签】作为变量名;
•        因为我们要把所有的变量名堆叠为一列而非多列,所以左侧橙色方框内的多序列堆叠暂不勾选(后面会为大家介绍需要勾选这个选项的情况);
•        左侧下方绿色方框内是对未堆叠列的处理,这个示例数据中是被测者和剂量这两个变量,我们选择全部保留。


我们用动图演示一下操作过程,见图4。

图4 列堆叠操作过程演示


新生成的数据表如图5所示。

图5 列堆叠后新生成数据表


20个被测者每人测了9个时间点的血压值,所以新生成的数据表有180行观测,标签和数据分别为堆叠前的时间点和血压值。这样,我们就可以进行后续的分析了。




将多列指标堆叠为多列指标

从标题来看,似乎在做无用功,别着急,前者的多列指标与后者的多列指标可不是一回事。


还是用上面提到的血压数据,出于不同的分析目的,我们可能想将每日的血压值作各作为一列,这时就不能简单将其堆叠为标签和数据两列了,而是需要堆叠成三组标签加数据的列,每组代表一日的测量情况。


操作与之前相同,不同的是需要勾选左侧的“多序列堆叠”(如图6):

图6  多序列堆叠


因为这里是连续的三列变量堆叠为一列,共堆叠成三列,所以我们将序列数写为3,并勾选“连续”,点击确定即可,我们用动图演示一下操作过程,见图7。

图7  多序列堆叠过程演示


生成的数据表如图8所示。每个被测者的每日数据为一列,我们可以单独比较四组被测者某一日的血压是否相等。

图8 多序列堆叠新生成数据表


日常数据整理与汇总中,除了存在将多列堆叠为一列的情况,还有将一列拆分为多列的情况。我们将在之后的文章中为大家介绍“堆叠”的反向操作---拆分,即如何将一列指标拆分为多列指标。拆分究竟有何意义?又有哪些注意事项?敬请期待后续的系列!



如果你还未体验过JMP,欢下载JMP试用,跟着文章练起来吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  !connect_viewthread_share_to_qq!!connect_viewthread_share_to_qq! QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|JMP数据分析论坛 ( 沪ICP备13022603号-2 )  

GMT+8, 2024-4-25 21:13 , Processed in 0.358278 second(s), 17 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表