在资料分析的过程中,有时候我们经常需要将多栏指标合并为一栏,比如将一个100 人5 个观察时间点生成的100 列5 栏数据表,转换成500 列1 栏的数据表,从而满足作图、分析的进一步需求。那么,在JMP 中如何快速实现呢?今天这篇文章我们将介绍:如何在JMP 将多栏资料合并处理的技巧。
在分析资料时,我们经常会遇到这种情形:一个人同时有多个主要分析指标(如随访资料中的多个时间点资料),在汇入资料时,通常是将其分别汇入在不同栏(如5 个时间点资料,分5 栏汇入)。这种汇入虽然看起来直观,但在分析时,有时却需要将这几栏指标放置在同1 栏中。
如果仅仅是5 栏还好,逐一复制也花费不了多少时间。但如果是20 栏、甚至更多的栏位呢?不仅费时费力,复制贴上也容易发生错误。今天我们便要来认识资料清理中的「堆叠」该如何实现快速将多栏合并为1 栏,同时新增一个标识变量,以显示不同指标。
下面我们就用JMP 自带的示范资料,来示范一下如何实现资料堆叠,您可以在最上方的选单「Help 」--> 「 Sample Data Library 」中找到示范资料,如下图1

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

图2 示范资料
20 个被测者分为四组,变量BP 8M 的含义是周一的八点血压测量值。所以该数据记录的是每个被测者分别于周一、周三和周五每日三个不同时间点的血压测量值。没错,这是标准的重复测量数据,临床上有很多医生收集的数据都是这样的格式。
第一步:将多栏指标堆叠成一栏指标
首先,想像一下这样的情境,得到数据之后,你想比较一下四组被测者的血压测量值是否有差异,这时,血压测量值变成了因变量y,测量时间点和分组变成了自变量x1 和x2,目前的数据格式,显然不符合我们接下来分析的要求。
我们需要将9 个时间点的栏进列堆叠,形成两栏,一栏时间点,另一栏测量值,且一一对应。在JMP 里该怎样操作呢?只需一步!

图3 - 在选单「Tables 」中选择「 Stack 」,会出现堆叠的对话框
- Stack columns –选择你想要堆叠的栏位
- Output table name –输入堆叠后的table名称
- Stacked Data Column / Source Label Column -由于我们堆叠完成后会形成两个新变量,一个是时间点(源标签栏),一个是血压测量值(堆叠数据栏),我们可以分别为其设定变量名,如果不做修改,则新变量会采用系统默认的【 Data 】和【 Label 】作为变量名;
操作过程如图4:

图4 - 栏堆叠操作过程演示
于是,新生成的资料表,如图5 所示:

图5 - 栏堆叠后新生成数据表
20 个被测者每人测了9 个时间点的血压值,所以新生成的数据表有180 列观测,标签和数据分别为堆叠前的时间点和血压值。这样,我们就可以进列后续的分析了。
第二步:将多栏指标堆叠为多栏指标
出于不同的分析目的,你可能在想:操作与之前相同。
不过,不同的是分析目的的需要

图6 - 多序栏堆叠
因为这里是连续的三栏变量堆叠为一栏,共堆叠成三栏,所以我们将序栏数写为3,并勾选「连续」,点击确定即可,如下图7:

图7
生成的资料表,如图8 所示。每个被测者的每日数据为一栏:

图8
日常资料整理与汇总中,除了存在将多栏堆叠为一栏的情况,还有将一栏拆分为多栏的情况。我们将在之后的文章中为大家介绍「堆叠」的反向操作--拆分,即拆分究竟有何意义?又有哪些注意事项?敬请期待后续的#资料分析10技巧专栏!
原文连结: 数据清洗之“堆叠”—多列数据合并处理的神器
推荐阅读:
注:本文为此系列文章的第五期。点击#资料分析10 技巧,即可回顾其他文章。