在日常分析数据的过程中,我们往往只需要整个数据集中的一部分,比如只关注一部分观测/行(男性或女性、某个年龄段的患者或者是患有某种疾病的患者)或者一部分变量/列等等这些可以称之为子集的数据集,而拆分原始数据的过程也同时是生成子集的过程。

那么在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中实现起来也非常容易,我们将在之后随机抽样的文章中专门介绍。敬请期待!
如果你还未体验过JMP,欢迎下载JMP试用,跟着文章练起来吧!

在JMP中拆分数据集有烦恼?这些实用妙招试试看!相关推荐

  1. 在python中strip_Python中关于strip使用方法的小妙招

    本篇文章给大家分享的内容是Python中关于strip使用方法的小妙招,有着一定的参考价值,有需要的朋友可以参考一下 [开胃小菜] 当提到python中strip方法,想必凡接触过python的同行都 ...

  2. 机器学习中对数据集进行拆分及模型训练

    对数据集的处理 经过预处理后得到: 特征集X 目标集Y 将特征集拆分: 一般来说机器学习的数据集都会被划分成三个个子集:训练集,验证集和测试集: 我们拿到的数据集通常都是由人工或者半自动化的方式收集来 ...

  3. [Python+sklearn] 拆分数据集为训练和测试子集 sklearn.model_selection.train_test_split()

    Python - sklearn 拆分数据集为训练和测试子集 sklearn.model_selection.train_test_split() 功能: 将数组或矩阵拆分为随机的训练子集和测试子集 ...

  4. 拆分命令_在MongoDB分片集群中拆分数据块chunks

    MongoDB Manual (Version 4.2)> Sharding > Data Partitioning with Chunks > Split Chunks in a ...

  5. Dataset:机器学习和深度学习中对数据集进行高级绘图(数据集可视化,箱线图等)的简介、应用之详细攻略——daidingdaiding

    Dataset:机器学习和深度学习中对数据集进行高级绘图(数据集可视化,箱线图等)的简介.应用之详细攻略--daidingdaiding 目录 箱线图 箱线图 箱线图(box plots):这些图显示 ...

  6. Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)

    Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...

  7. oracle sql字符拆分字符串函数,oracle-是否有在PL / SQL中拆分字符串的功能?

    oracle-是否有在PL / SQL中拆分字符串的功能? 我需要编写一个过程来规范具有由一个字符连接的多个令牌的记录. 我需要获得这些令牌来分割字符串,并将每个令牌作为新记录插入表中. Oracle ...

  8. Python 如何拆分数据集

    前言 训练模型之前一般需要把数据集拆分为训练集和测试集,使用python代码如何拆分的关键就是如何更方便的选择出自变量X和因变量Y. 加载数据 # 导入第三方模块 import pandas as p ...

  9. 在PyCharm中大型数据集indexing...加载缓慢的问题

    ** 在PyCharm中大型数据集indexing-加载缓慢的问题 这是由于在工程目录data下导入了过大的NTU-RGBD(13.4G)骨骼数据集导致的加载缓慢问题,在加载过程中有可能会出现以下问题 ...

  10. 计算机页面优盘页面分开,如何使用老毛桃winpe从电脑分区中拆分出一个空闲分区?...

    最近有位朋友想要从电脑电脑分区中拆分出空闲分区,但是却不知道应该如何操作,所以就来后台询问老毛桃是否有方法.其实,这个操作我们可以通过老毛桃u盘启动盘来进行.在u盘启动中的分区工具中,具有一个拆分分区 ...

最新文章

  1. javascript中parentNode,childNodes,children的应用详解
  2. AgilePoint模型驱动BPM(业务流程管理)介绍
  3. 详细讲解Quartz.NET
  4. 超252万市民预约报名 北京数字人民币红包中签结果公布啦
  5. RabbitMQ 功能
  6. Apex 获取真正的IP地址
  7. python上传文件到OSS
  8. android电子时钟码源,android自定义时钟APP源码
  9. Linux打包和解包
  10. 【Verilog基础】Verilog语法之标量(Scalar)与向量(Vector)
  11. mc服务器小地图不显示玩家,为啥小地图莫名消失了 玩家:或许是它喝完随机饮料后 自己隐身了...
  12. 代码片段plus ??? 打工神器: 飞冰物料库
  13. uefi装完系统后无法引导_不重装系统修改引导方式为UEFI模式
  14. 移动端html尺寸,移动端页面的三种尺寸
  15. 中文字号和磅数的联系
  16. 全面了解Qtum节点端口配置,立即加入全节点激励计划
  17. glob.glob()
  18. 解决oracle导出dmp时 904错误
  19. 我要学编程,看什么书好?--^_^,这里推荐一些个人觉得很不错的书(五)小集篇
  20. sublime的一些使用技巧

热门文章

  1. 中国高技术产业统计年鉴(1995-2021年)
  2. 计算机网络的主要功能四种,计算机网络应用基础概述
  3. 钟平---逻辑英语的语法讲解
  4. python re.match函数的使用
  5. 导线平差5800全能程序
  6. 没有光驱照样安装Win7!U盘装系统教程
  7. 使用wunderlist进行TODO管理
  8. 金士顿U盘写保护去除
  9. Ubuntu系统盘制作
  10. Android入门,android基础开发