扬声器 | 成绩单 |
| 曼迪 | 好的,欢迎大家今天的讨论。 我们来谈谈桌子吧。 我叫 Mandy Chambers,是 JMP 测试团队的首席测试工程师。 |
| 今天加入我的同事和朋友是凯尔奇·米克劳斯 (Kelci Miclaus)。 她是 JMP 生命科学团队的研发高级经理。 |
| 实际上,凯尔奇和我几年前就开始合作,当时临床产品开始成为我碰巧测试的所有东西的重要消费者。 |
| 因此,我非常了解她的团队,并与他们在他们试图实施的不同事情上密切合作。 |
| 对我来说,能够看到客户真正使用我在 JMP 中实际测试的东西以及他们如何将它们用于临床产品的实时应用程序非常有价值。 |
| 所以在过去,我们已经做了这个演示。 它的时间要长得多,我们决定在这里做的最好的事情就是 |
| 给你整个文件。 这就是此录音所附的内容,以及两组数据和 zip 文件。 你应该有数据表、脚本、 |
| 您需要一些期刊和不同的东西,并且能够逐步完成每个应用程序,即使我最终没有向您展示或者 Kecli 没有向您展示其中的内容。 你应该能够做到这一点。 让我首先在这里分享我的屏幕。 |
| 这样大家就能明白我今天要讲的内容了。 正如我所说,如果我要完整地展示这一点,我所拥有的期刊将讨论连接表以及连接表的不同方式。 |
| 因此,这部分我不会详细介绍,而只是基本的表连接。 如果我点击这个, |
| 笔记本电脑运行和笔记本电脑主题。 在表格菜单下,如果您是 JMP 新手或者之前可能没有执行过此操作, |
| 您可以进行表连接,这是物理连接。 这会将表格放在一起。 因此,我会将笔记本电脑运行加入到笔记本电脑主题中。 |
| 在此对话框中,您可以选择要连接在一起的内容。 您可以通过匹配、笛卡尔连接、行连接来连接,然后您将连接表。 我现在不打算这样做,只是为了 |
| 消耗时间,但这就是你要做的。 同样在表格菜单下,我要讨论的其他内容是 JMP 查询生成器。 |
| 并且它能够将更多的表连接在一起。 如果您有 3、4、5、6 张桌子,无论您有多少张桌子,您都可以将它们放在一起,我们将组成一张包含所有内容的桌子。 但话又说回来,我今天实际上不会那么做。 |
| 所以如果我 |
| 回到这里,我关闭这些桌子。 |
| 让我们开始了解虚拟加入是如何产生的。 那么我们先来谈谈连接表。 |
| 您必须决定要使用哪种类型的联接。 因此,如果您的表很小,那么进行物理连接可能是最简单的。 只需进行表连接,就像我向您展示的两张表不是很大。 |
| 如果您提取三个或四个甚至更多的表,JMP 查询生成器是构建表的绝佳工具。 |
| 您可能希望所有数据都在同一个表中,这样这可能正是您想要的。 您只需要注意磁盘空间 |
| 和性能,并且要了解,如果您有五到六张桌子,您分开坐在一起,然后将它们物理地连接在一起,那么您正在制作重复的副本。 |
| 因此,您可以通过这些方法来确定要使用哪种方法。 虚拟连接出现在 JMP 13 中,并且添加了以下功能: |
| 获取一个链接(一个公共链接 ID),并将多个表连接在一起。 这是一种加入而不加入的概念。 它节省了空间,也节省了数据的重复。 |
| 所以……我们在 13 年就开始了这一点。 然后在 14 到 15 年间,我们添加了更多功能、客户要求的东西。 链接表与行同步...行状态同步。 您可以缩短列名称。 我们添加了自动打开链接表的功能。 |
| 能够在同一列上拥有链接 ID 和链接引用。 我们还添加了这些悬停小提示,我将向您展示它可以告诉您哪个源是您的列源表。 |
| 这些是我们添加的内容,我将尝试进行设置并为您演示。 所以我得到了这些数据,这些数据实际上是从...... |
| 这只是一家想象中的高科技公司。 它是人力资源数据,包括薪酬、员工人数、以及一些多样性和合规性等内容, |
| 教育背景和其他就业因素。 因此,如果您考虑一下,它是一种完美的链接数据,因为您有 |
| 通常是一个唯一的 ID 变量,例如员工 ID 或可以链接在一起的变量,并且可能拥有位于不同位置的 HR 团队的各种数据。 |
| 因此,我将打开这两个表,并简单介绍一下如果您尝试将它们链接在一起,您会做什么。 |
| 所以这里的表是员工分数 1,然后我在后面有薪酬大师 1。 这些表,Employees Scores 1 是我的源表。 |
| 补偿大师是我的参考表。 所以你可以在这个表中看到这些ID,这个ID变量。 而且它也在补偿主表中。 |
| 所以我要设置我的链接 ID。 因此,有几种不同的方法可以做到这一点。 您可以进入列属性。 |
| 您可以在此处看到,您有一个链接 ID 和参考。 最简单的方法是右键单击,这样就会出现链接 ID。 |
| 如果我看这里,我可以看到这个 ID 键已分配给该列。 |
| 那么我将进入我的薪酬主表。 我将进入本专栏。 同样,您可以使用列属性来完成此操作。 |
| 但您可以通过直接在此处链接参考来实现最简单的方法,该表具有 ID。 所以它出现在这个列表中。 我要点击这个,瞧,这是我的链接参考 |
| 图标就在那里。 现在我可以看到该表中的所有列...都可以在该表中使用。 您可以看到您有大量的列。 |
| 您还可以在这里看到...它们是一种很长的列名称,您有列名称,加上这里的标识符,它向您表明这是一个引用列。 |
| 因此,我将运行我在此处保存的这个简单的小表格,并简单地向您展示这是一份报告,并且只是简单地向您展示这是虚拟列的服务长度。 |
| 然后薪酬类型实际上是我的薪酬表的一部分,然后性别是一个虚拟列。 所以我正在使用...使用虚拟列以及驻留在表中的列来构建它。 |
| 我想很快向您指出的一件事是,在这个红色小三角形下......假设您正在处理这些数据并且您决定, |
| “哦,我真的很想做这张桌子。 我真的希望所有列都在一张表中。” 这里有一个小秘密工具,称为合并参考数据。 |
| 很多人并不知道它的存在。 但如果我愿意,我可以单击它,然后将所有列合并到 |
| 这张桌子。 因此,但出于时间考虑,我现在不打算这样做,但我想指出它的位置。 |
| 让我很快地在日记中向您展示。 这可以通过脚本来完成,因此您可以设置属性链接引用并指向您的表和 |
| 列出要使用链接列的内容。 因此,我将快速关闭此应用程序,然后返回到我实际使用的同一应用程序 |
| 同样的两个表,我在这里保存了一些额外的脚本,还有一些我想展示的东西。 再说一次,我有员工分数。 这是我的源表。 |
| 然后我有补偿大师,他们已经链接起来,你可以在这里看到这一点。 所以我想重新运行该表格,并向您展示一些东西。 |
| 所以您可以看到这些列名称现在更短了。 所以我想展示我们在 JMP 14 中添加的内容。 如果我右键单击并弹出列信息对话框, |
| 我可以在这里看到它说在这里使用链接的列名称。 这就意味着这些名字会更短 |
| 这确实是一个很好的功能,因为当一天结束时,当您与某人分享此报告时,他们并不真正关心列在哪里 |
| 来自,无论它们是在主表还是虚拟表中。 所以这是一份不错、干净的报告供您使用。 脚本已保存,以便您可以在脚本中看到它... |
| 它保存显示引用表的脚本。 所以如果我看看这个,我就能明白。 所以你会知道这个专栏来自哪里但是 |
| 与您分享的人不一定需要知道。 所以我想向您展示我们通过行状态调度添加的另一件事。 |
| 真正的简单例子,我将运行这个发行版。 你马上就会注意到,在这个发行版中,我有一个标题说这些数字是错误的。 |
| 让我指出我在说什么。 员工分数是我的员工数据库表,它有大约 3,600 名员工。 |
| 这是对员工的唯一引用,并且它是当前员工数据库。 我的薪酬主表更像是一个历史表,它有 12,000 |
| 行,因此该表中可能存在对同一员工的多个引用,比方说,一名员工换了工作,他们得到了加薪,或者他们搬走了。 |
| 或者它可能有不再在公司工作的员工。 所以从这个表运行这个报告 |
| 没有呈现我真正想要的信息。 我可以在这里看到我的计数已关闭,计数更大,我没有完全找到我想要的东西。 |
| 因此,这就是我们创建行状态同步的原因之一,Kelci 也将在现实生活应用程序中更多地讨论这一点。 |
| 但我只是简单地向您展示如何设置调度行状态。 所以我所做的只是批处理, |
| 选择颜色标记。 我所做的实际上是从薪酬主管向员工发送分数, |
| 我将信息发送到此表是因为(很抱歉),这是我希望从中运行我的信息的表。 |
| 因此,如果我返回并重新运行该发行版,我现在就有了这个发行版(它的列有点不同),但我有这个发行版。 如果我看看这里的数字, |
| 我有我的员工数据库的确切号码。 这正是我想看到的。 所以你需要小心发送和接受,Kelci 会对此进行更多讨论。 但这只是一个简单的案例来说明如何做到这一点。 |
| 我会很快地向您展示,有一个在线帮助链接显示 |
| 虚拟连接列并显示行状态的示例。 它会引导你完成这个过程。 这里还有一些其他例子 |
| 使用虚拟连接。 如果您需要有关设置的更多信息。 再次提醒您,所有这些都是可编写脚本的。 因此,您可以在此处编写脚本,通过设置行状态以及您想要的不同内容。 |
| 因此,当我们进入 JMP 15 时,我们添加了更多内容。 因此,我们添加的是自动打开表格以及将鼠标悬停在列上并找出它们来自哪里的功能。 我将解释这到底意味着什么。 |
| 所以如果我点击这些。 我们为 JMP 15 创建了一些新表,employeemaster.jmp,它仍然是该 HR 数据的一部分。 因此,如果我稍微追踪一下并查看,我会指出有关这张表的一些事情。 |
| 它有一个链接 ID 和一个链接引用。 这是我们在 JMP 15 中添加的另一件事,能够在同一列上拥有链接 ID 和链接引用。 |
| 因此,如果我看看这个,然后再看看我家的窗户,我可以看到还有两张桌子是开放的。 它们是自动为我打开的。 |
| 所以我要把它们打开,因为我想把它们串起来,这样你就可以看到它是如何工作的。 但是这个员工主表链接到 |
| a...将它们堆叠在一起...它链接到教育历史表,而该表又链接到我的预测终止表。 你可以看到 |
| 有一个员工 ID,其中包含链接引用和链接 ID,此处为员工 ID。 同样的事情,然后预测确定只有一个ID。 |
| 如果您还有另外一两个表包含员工 ID 唯一数据并且您需要将其拉入,您可以通过在此处分配链接引用来继续该字符串,然后您可以继续继续。 所以我...只是为了快速向您展示,如果我右键单击并查看此处的此专栏, |
| 我可以看到我的链接 ID 已设置,我还可以看到我的链接引用已设置。 它告诉我教育历史是一个与该表链接的表。 |
| 我已经将其设置为自动打开,并且使用了较短的名称。 我不调度行状态,因此那里没有设置任何内容。 因此,我可以使用其他两个表中的所有列,以供我参考此处称为员工主表的表。 |
| 很快,您就可以看到这里有大量可供您使用的列,并且链接列在此处显示为分组列。 |
| 正如客户所说,另一个问题是,有什么办法可以告诉我们这些列的来源吗? |
| 这样是不是更清楚一点了? 所以我们添加了这个漂亮的小悬停提示。 如果我将鼠标悬停在 |
| 这,这告诉我这个特定的列残疾标志来自预测终止。 所以它实际上来自我的系列中最后一个表格。 |
| 如果我到这里点击其中之一,它会说学位课程代码来自教育历史。 |
| 所以,这是一个很好的小功能,在您选择专栏时会有所帮助,也许在您尝试在平台上运行的内容等方面。 |
| 但如果我运行这个分布,这只是一个简单的分布示例,显示员工级别 |
| 实际上来自我的员工主表。 这个学位描述来自教育历史表,这个绩效评估来自我的预测终止表。 然后你可以再看一些 |
| 这里有一些其他的例子。 我确实建造了 |
| 这里是仪表板的上下文窗口,其中显示了显示箱形图的图形生成器。 我们这里有一个分布,一个表格和一个热图, |
| 使用所有虚拟列,有些列来自表,但虚拟列也有过滤器。 所以如果我想看看女性和专业人士。 |
| 我总是喜欢指出这里的奇怪之处。 所以如果我进去看看这两个小地方,它们就在这里闲逛。 这对我来说非常有趣,因为薪酬比率显示了人们的报酬方式。 |
| 基本上,他们的薪酬是否符合其工作描述的正确比例。 看起来这两个异常值是 |
| 持续超出预期,看起来他们的工资可能偏低。 就像这里的这个一样 |
| 就其本身而言,看起来他们很少达到他们的期望,但他们可能支付稍微过高,或者他们可能会犯错误。 但无论如何,当你将这些归零时,你也可以看到正在做出选择 |
| 这里。因此,在这张热图中,我可以看出正在花费一些性能费用和培训费用。所以也许可以训练那个人。 所以这实际上很好很好很高兴看到 |
| 所以那就是 |
| 关于我想展示的一切。 我确实想展示这一点,只是为了提醒,只是为了重申。 教育历史可以访问预测终止的列。 |
| 因此这两个表可以分别相互通信。 如果我运行这个图形脚本, |
| 我有类似的表现和培训费用,但我正在考虑平均绩点、班级排名,以及使用这两个表中的列组合来确定人们在哪里陷入限制。 |
| 所以我要把这个传递下去。 我相信这就是我想分享的大部分内容。 我将停止共享我的屏幕。 我会把这个传回给凯尔奇,她将从这里拿走。 |
| 凯尔西·J·米克劳斯 | 谢谢,曼迪。 |
| 曼迪说我们已经做过几次这样的演讲了,实际上这是大家的共同努力 |
| 我在我的团队工作,该团队负责 JMP Clinical 和 JMP Genomics 垂直解决方案的生命科学, |
| 并找到了这样的完美示例,说明我可以在哪里真正利用虚拟连接,并与开发团队密切合作,研究如何在 JMP 的最后几个版本中发布这些功能。 |
| 因此,在本节中,我将介绍一些特定于我们的临床研究的示例,以及我们如何真正利用围绕行状态同步的谈话表想法。 |
| 正如 Mandy 提到的,现在就是这样,如果我们有时间接近尾声,这种虚拟连接与行状态同步的想法现在是驱动 JMP 临床报告和评论使用方式的整个架构 |
| 与我们的客户一起评估早期疗效和安全性以及临床试验报告。 它如此适合的原因之一是典型临床试验数据的格式。 |
| 因此,我将用于我有时所说的行状态同步或行状态传播的所有示例的数据示例, |
| 是来自约 900 名患者的临床试验的示例数据。 这是大约20-30年前进行的真实临床试验 |
| 研究这些患者的蛛网膜下腔出血和尼卡地平的治疗。 |
| 临床数据的伟大之处在于我们使用非常标准的标准化数据结构,这意味着临床试验的每个组成部分都会被收集,类似于 Mandy 展示...展示...展示给我们的 HR 数据 |
| 是规范化的,因此每个表都有自己的内容,我们可以单独跟踪它,然后使用虚拟连接创建综合故事。 |
| 我将介绍的三个数据集是这个人口统计表,其中包含大约 900 名患者 |
| 临床试验,这里我们的临床试验中每个患者有一行。 这被称为人口统计,其中包含有关他们的出生、年龄、性别、种族、他们接受的治疗以及临床试验期间发生在他们身上的任何特定事件的信息。 |
| 同样,我们可以有单独的表。 因此,在临床试验中,他们通常会在每次就诊时收集患者在接受新疗法时发生的不良事件。 |
| 药物或研究。 这是一个包含大约 5,000 条记录的表。 我们仍然有这个唯一的主题标识符,但当然我们有重复的。 所以这会记录每个事件或不良事件 |
| 这是我们临床试验中每位患者的报告。 最后我还将使用一个或多个实验室数据集, |
| 这也遵循我们在不良事件中看到的类似类型的记录堆叠格式。 |
| 在这里,我们考虑的是定期访问,他们会进行多次实验室测量,我们可以在整个临床试验过程中跟踪这些测量,以寻找异常情况和类似情况。 |
| 因此,这三个表是临床试验数据国际 CDISC 标准的非常标准的标准化格式。 |
| 它非常适合我们使用虚拟连接。 Aas Mandy 说过,创建实验室合并表很容易。 |
| 但这里我们有 6,000 个实验室记录,并合并到我们的人口统计中,这会导致其人口统计描述的所有单个实例的重复。 所以我们想用它建立一个虚拟连接,我们可以很容易地做到这一点。 |
| 如果我们在人口统计表中创建,我们将设置唯一的主题标识符作为我们的链接 ID。 |
| 然后很快,因为我们通常想要查看实验室结果并使用他们所在的治疗组之类的东西来看看实验室中是否存在差异, |
| 我们现在可以参考这些数据并创建可视化或报告,以实际评估和查看我们实验室结果中治疗组的差异。 |
| 所以我们不必进行合并。 我们刚刚通过简单的两步设置虚拟连接的列属性,从我们的人口统计表中访问了这些...这个计划的手臂列。 |
| 观察实验室异常情况也很容易。 因此,这是每个不同组或治疗组的图,这些组或治疗组在临床试验中的访问中进行了异常高的实验室测试。 |
| 我们可能还想对不良事件进行相同类型的分析,我们还想看看不良事件中是否有不同的发生情况 |
| 这些治疗组之间。 因此,我们还可以再次将该表与我们参考的人口统计数据联系起来,并非常快速地创建单独发生的不良事件的分布计数,例如尼卡地平(积极治疗)与安慰剂相比。 |
| 所以现在我们希望他们真正谈谈。 因此,我想用这些数据展示的接下来两个示例是我们拥有的行状态同步选项。 |
| 因此,您很快就从 Mandy 的部分看到,她表明,在列属性上,我们现在能够在表之间同步行状态。 |
| 这就是为什么我们的演讲被称为“谈话桌”,因为这就是他们现在交流的方式。 您可以调度行状态,这意味着您设置的对某些链接 ID 的引用的表可以将信息从该表发送回其引用 ID 表。 |
| 我将介绍一个简单的示例,但正如前面提到的......正如曼迪提到的,这是迄今为止最重要的 |
| 有时这是危险的情况,因为很容易遇到可能得到不确定结果的情况,但我将展示一个案例,它在哪里有效以及在哪里有用。 |
| 正如您所注意到的,仅从该分析来看,就不良事件而言,这非常容易,因为我们设置了对表(ID 表)的链接引用来访问列并查看此表中的治疗组。 |
| 但实际上并没有什么事情是相反的。 正如曼迪所说,您不会想使用这个新的连接表来查看治疗组的分布, |
| 因为这里实际上有的是不匹配的数字。 看起来有 5,000 个主题,但实际上,如果你回到我们的 |
| 人口统计表,我们的人口不到 900 人。 这是按治疗组划分的大约 900 名受试者的真实分布 |
| 及其所有其他发行版。 但现在,有时您希望将此表用作分析表或您要创建分析的目标。 |
| 您希望从与其虚拟链接的那些表中获取信息。 例如,实验室和不良事件。 |
| 因此,在这里,我们将实际使用此表来创建可视化效果,以注释此表中的这些受试者以及任何进行过异常实验室测试或严重不良事件的人。 |
| 现在我作弊了,因为我已经准备好了这些数据。 您会在我的不良事件数据中注意到 |
| 我已经完成了分析,以查找任何被认为是严重不良事件的受试者案例,并且我使用行状态标记来注释那些具有...严重不良事件的记录。 |
| 同样,在实验室数据集中, |
| 我使用红色来注释...注释任何实验室结果 |
| 异常高。 例如,我们可以看到所有具有高度异常的人。 我将其中大部分内容涂成红色,只是行状态选择,然后控制行状态。 |
| 因此,有了这些数据,我就拥有了这两个行状态,我们可以回到我们的人口统计表 |
| 并创建一个视图 |
| 这是临床试验中患者年龄的分布情况。 |
| 现在,如果我们返回每个链接表,我们可以通过行状态同步来控制引入这些带注释的信息。 |
| 因此,我们将在这里将此选项从具有引用表的行状态更改为无,以实际调度,在这种情况下我要小心。 我唯一想让这个表告诉链接引用表的是一个标记集。 |
| 我要点击“应用” |
| 您会自动注意到我根据该人口统计表创建的可视化现在具有在其他表中经历过不良事件的任何受试者的标记。 |
| 我们现在可以在实验室做同样的事情。 |
| 选择发送。 在这种情况下,我们只想发送颜色。 |
| 现在,只需控制列属性,我们就可以根据人口统计表进行可视化或分析,该表已使用调度行状态同步或传播来访问这些虚拟连接表中的信息。 |
| 所以这真的很酷。 我认为这是一个非常强大的功能。 但是使用调度选项有很多陷阱和需要小心的事情。 |
| 即虚拟连接工作的整个方式是 |
| 链接 ID 表、日期...您设置的数据表(在本例中为人口统计)每个 ID 一行,您将使用它来合并或虚拟加入到 |
| 具有该使用 ID 的许多副本的数据表。 所以我们正在进行一对多;没关系。 Dispatch 实现多对一 |
| 对话。所以在文档中我们有一个...在该视频提供的资源中,有很多 |
| 关于小心使用这个的评论。 它不应该是高度互动的东西。 |
| 如果您随后决定更改行状态,则很容易变得令人困惑或无意义, |
| 也就是说,如果我用颜色和标记都标记了,它就不知道该怎么做,因为有些行可能会说,“把这个涂成红色,” |
| 但另一个链接的表可能会说将其颜色为蓝色或黑色。 因此,您必须非常小心,不要混合和匹配,也不要与多对一的合并想法进行过多的交互。 |
| 但在这个例子中,这是一个非常非常有价值的工具,需要大量的数据操作才能达到这一点。 |
| 因此,我将结束这些调度虚拟连接示例,并继续讨论可能更常用的是接受... |
| 虚拟连接谈话表的接受行状态。 对于本例,我实际上将通过脚本来完成此操作。 因此,不要以交互方式引导我完成虚拟连接, |
| 行状态列属性,我们将查看该脚本的结果。 |
| 这里的例子,我们想要做的,是能够使用这三个表(同样是临床试验中的人口统计、不良事件和实验室数据)来真正创建他们所谓的 |
| 全面的安全概况。 这确实是我们为客户使用 JMP Clinical 的理由和理由。 |
| 我们希望能够获取这些数据集,将它们分开,但允许它们用于全面的单一分析,这样它们就不会感觉是分开的。 |
| 因此,在这个示例中,我们希望能够打开我们的人口统计并将其设置为链接 ID。 这与我刚刚以交互方式执行的操作类似,它将创建人口统计表并在唯一主题标识符上创建链接 ID 列属性。 |
| 这样我们就完成了。 您会看到那里的键,它表明现在是链接 ID 属性。 然后我们要打开实验室数据集。 |
| 我们将在该表中的唯一主题标识符上设置一个属性,以使用对人口统计表的链接引用。 |
| 还有一些选项和这里的选项。 我们想展示使用较短名称的特性。 使用链接的列名称来缩短我们的名称 |
| 来自人口统计表的列进入实验室表。 在这里,我们要设置行状态同步作为选择、排除和隐藏的接受。 |
| 我们还将对 AE 表执行此操作。 所以我将运行接下来的代码片段, |
| 这将打开我的 AE 和我的实验室表。 现在您会看到,这里的属性不是指派发而是设置为接受 |
| 通过这些选择、排除和隐藏。 同样,不良事件表也具有完全相同的接受度。 因此,在现在的情况下,我们非常小心地仅发送此调度,而不是此调度 |
| 一种类型的行状态来自一个表,另一种类型来自另一表返回到我们的链接 ID 引用表。 在这里,我们将让我们的链接 ID 参考表人口统计广播它所发生的情况 |
| 到其他两个表这就是accept所做的。 因此它将接受人口统计表中的行状态。 |
| 我有点作弊,我实际上只是在我们的人口统计表中附加了一个脚本 |
| 这实际上只是设置一些我已经展示过的可视化效果,这些可视化效果是附加到单个窗口中每个表的脚本。 |
| 因此,我们提供了您可以考虑的安全概况。 我们有患者人口统计信息的分布。 所以这是来自人口统计表。 |
| 您可以看到服用安慰剂的 443 名患者与服用尼卡地平的 427 名患者的正确计数。 |