设为首页收藏本站

JMP数据分析论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何在JMP中快速拆分现有数据集

  [复制链接]
跳转到指定楼层
楼主
发表于 2020-11-4 15:46:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
​​在日常分析数据的过程中,我们往往只需要整个数据集中的一部分,比如只关注一部分观测/行(男性或女性、某个年龄段的患者或者是患有某种疾病的患者)或者一部分变量/列等等这些可以称之为子集的数据集,而拆分原始数据的过程也同时是生成子集的过程。那么在JMP中如何快速拆分这些数据集呢?如何选择符合条件的观测值?如何一键拆分数据为多个子集?JMP中又有哪些简便快捷的随机抽样方法?今天就带大家一起学习数据清洗的一个重要部分——拆分数据的实用技巧,帮助你省时省力地提高分析的准确性。
为了帮助更多的临床医师学习如何运用JMP高效地开展数据分析,提高日常工作和发表论文的效率,2020年8月起,JMP资深用户、JMP特约专栏作者、资深统计学家冯国双博士及其团队将在JMP数据分析平台为大家分享一系列统计及数据分析、JMP实战操作等干货内容,每期一个经典话题,帮助大家掌握一个新技能。值得注意的是,这些话题并非仅针对临床医师,对所有运用JMP软件开展数据分析的小伙伴都适用本文为此系列文章的第四期。

在JMP中,生成子集的菜单位于【表】→【子集】,如图1。

图1 生成子集的主要操作页面

那么具体该如何拆分呢?这个对话框里的每个选项都有何意义?又该如何利用好这些选项呢?我们先从最简单的说起。

01 如果只需要一部分变量(列)
比如在下图的数据集里,只需要Y和年龄两个变量(当然实际情况不会是这样,一般情况下,除非变量特别多,都不需要单独把一些变量拎出来),你只需要在数据表上选中你想要的列,多列的时候记得按住Ctrl键,然后打开子集对话框,如图2操作。

图2 将部分列生成新的子集

这样就得到了由所有观测(行)和选定变量(列)组成的新数据集。

然而更多的时候,我们更想选择符合特定条件的观测(行),对变量不做要求,或者是选择一部分观测和一部分变量,那下面的几种拆分行的操作就能派上用场了。


02  如果只需要一部分观测(行)

“选择符合条件的行”
这个标题既是我们的目的,又是我们实现目的的操作。比如我们想选择数据集中年龄>40岁的观测,我们可以通过【行】→【行选择】→【选择符合条件的行】,然后编辑筛选观测的条件,点击确定,数据中符合条件的观测就会被选中。

本例中选中320行观测,如果希望将这些观测生成为新的子集,那么只需要点击【表】→【子集】,不需要做更改(当然,如果你在这之前已经选中了部分变量,那么需要选中【选定列】,而非【所有列】),点击确定即可将选中观测生成新的数据集,如图3。

图3 选择符合条件的行

选择符合多重条件的观测
很多时候我们需要选择的观测要满足≥2条规则,比如我们要选择大于40岁的女性,同样的流程,只是在编辑规则时稍稍复杂一点,见图4。条件之间的关系是“和(and)”时,选择【若符合所有条件】,是“或(or)”时,选择【若符合任意条件】。

图4 选择符合多重条件的观测

隐藏不想分析的行
上一个方法介绍的是如何将想要的观测生成新数据集,以便我们进行分析。这里介绍如何从另一个角度得到我们想要的行,那就是隐藏掉不想要的行。

同上面讲述的选择行的方法一样,你可以从【选择符合条件的行】选中你将要分析的行,然后反向选择进行【隐藏和排除】操作,见图5(图中已经完成了选择符合条件的行)。

这里建议大家直接选择【隐藏和排除】,因为只是被【隐藏】的观测同样会进入到后续的统计分析中,只是在作图表时不出现,而只是被【排除】的观测不会进入到后续的统计分析中,但会在作图时出现。一般情况下,对于这些不符合筛选条件的观测,我们既不想让它们出现在图表中,也不想让它们参与后面的统计分析,所以直接选择【隐藏和排除】就好啦。

图5 隐藏和排除不想分析的行

另一种方法就是直接反向编辑选择条件,直接筛选出不想纳入分析的行,再点击【隐藏和排除】。再次点击【隐藏和排除】即可取消。

一键拆分成多个子集
如果出于分析需要,我们想根据某变量的不同值将数据拆分成多个数据集,例如拆成男、女两个数据集,或根据示例数据中的Y(有序型)拆成high、medium和low三个数据集,这在JMP里的操作有多简单呢?

我们以后者为例,见图6。在勾选【取子集依据】后弹出的变量名列表里选择你想拆分数据集的依据,本例以Y(有序型)为依据,JMP将数据集自动拆成三个子集,分别是Y(有序型)=low,Y(有序型)=medium以及Y(有序型)=high三个子集。

图6 按照变量值拆分子集

以变量为依据,JMP会将变量中的每一个值单独生成一个新的子集。举例来说,如果你不小心将连续型的年龄变量作为拆分依据,那你的屏幕将会弹出上百个子集,每个子集的观测具有相同的年龄,这点要小心哦。

随机抽样
作为拆分数据集的一个特例,随机抽样其实也可以看作是数据集的拆分,相当于把随机选中的观测拆分出来,就形成了随机抽取的样本。

在JMP中进行随机抽样有多种方式,这里介绍的是最简单的一种随机抽样方式,你只需要告诉软件,想抽取多少人,或抽取总例数的多大比例,其余就都交给软件就行了。具体更详细的随机抽样方法我们会在后面文章中有专门介绍。

这种方式仍然在【表】→【子集】的对话框中,如图7所示,红框内的部分就是进行随机抽样操作的关键选项,两种方式任选其一,一种是指定抽样的比例【随机-抽样率】,另一种是直接指定抽取的样本量【随机-样本大小】。

图7 随机抽样

图7所示,表示随机抽取全部观测的50%,或者从全部观测中随机抽取221例形成新的数据集(注意这里的随机抽样是无放回抽样哦,也就是说每个观测至多只能被抽取一次。点击“确定”后,你会发现一个新的数据集就出现了,这就是你想要的随机抽取的样本数据。这大概是史上最简单的随机抽样方式了,有了这一工具,还用担心什么抽样问题呢?

当然,这种随机抽样只是简单随机抽样,实际中的随机抽样方式也有多种,如分层随机抽样等,这在JMP中实现起来也非常容易,我们将在之后随机抽样的文章中专门介绍。敬请期待!
​​​​



本帖子中包含更多资源

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

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

使用道具 举报

推荐
发表于 2020-11-8 10:08:39 | 只看该作者
Diabetes.jmp
这是软件自带的数据文件.
回复 支持 1 反对 0

使用道具 举报

沙发
发表于 2020-11-4 18:57:15 | 只看该作者
辛苦啦
小小的建议,可以把样本集(模拟的也可以)让大家来复现
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2020-11-6 09:11:44 | 只看该作者
小白应用统计学 发表于 2020-11-4 18:57
辛苦啦
小小的建议,可以把样本集(模拟的也可以)让大家来复现

好提议。版主回头问问作者团队是否可以提供下数据集~
回复 支持 反对

使用道具 举报

地板
发表于 2020-11-6 13:36:26 | 只看该作者
admin 发表于 2020-11-6 09:11
好提议。版主回头问问作者团队是否可以提供下数据集~

给了锤子,再配套一个钉子,要么两边都会干着急的
^V^
回复 支持 反对

使用道具 举报

6#
发表于 2020-11-8 10:57:47 | 只看该作者
nanfeng36 发表于 2020-11-8 10:08
Diabetes.jmp
这是软件自带的数据文件.

好尴尬,结果已经搜索到啦,给力
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 14:25 , Processed in 0.405942 second(s), 17 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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