Brian Corcoran- SAS 软件开发总监
JMP 提供了多种方法将各种数据格式输入到产品中。然后,它提供了大量导出结果的方法。第一个原因的原因很明显。多年来开发了许多工具来收集和格式化数据。在大多数情况下,这些工具不允许您将数据转换为 JMP 数据表。导出的原因是需要与广大受众分享结果,其中许多人没有 JMP。
本文尝试简要介绍如何使用 JMP 13 的一些导入、查询和导出功能。虽然 Windows 版本用于桌面屏幕截图,但本文讨论的所有功能在 Mac 版本中也可用JMP 的。 我将使用叙述形式,因为它可以更容易地看到完整的端到端工作流程。我决定以最近发生的一个现实生活中的例子为例。
我有两个儿子,一个即将大学毕业,一个正在读一年级。大儿子在二年级时改变了学习方向。在那段时间里,我们对可能的职业进行了很多讨论。你对什么感兴趣?您觉得自己能为社会做出哪些贡献?您想要一份办公室工作还是一份更积极的工作?你想去旅行吗?事情一直持续着。
小儿子有一个学习计划,但并不完全确定这是正确的选择。这一次,我想,我需要更多的数据来帮助决策过程。各种工作的前景如何?这可能会帮助我儿子确认他当前的选择或考虑其他选择。在与他交谈时,他说他不介意获得硕士学位,但可能不想走博士路线。他可能想要一个技术领域,但对其他领域持开放态度。 他喜欢改进流程,也许还喜欢在工作期间四处走动。最后,他想要一份薪水较高的工作。好的。
事实证明,美国劳工统计局有工具可以帮助解决这个问题。这政府网站网站包含大量有关工作增长和薪资、所需教育,甚至工作描述的数据,让访问者了解该领域的内容。这些数据可供公众下载,它为我提供了一个开始探索的好地方。
在搜索劳工统计局网站时,就业预测、职业就业数据库部分似乎最相关。 [1]该网站有一个数据查看器,但我想将其导入 JMP。幸运的是,有一个按钮可以下载 Excel XLSX 格式的原始数据。完美的。我下载了该文件,大小为 500K。工作簿中有 12 个表格,但表 1.7 似乎是最好的,其中包含 2014 年的就业空缺以及对 2024 年的预测。我在工作簿上使用 JMP 的“文件”->“打开”,Excel 向导会提供默认设置。我选择工作表下的表 1.7 来更改导入设置:
使用默认设置预览工作表
这有很多标题信息。在尝试了列标题和数据开头的 JMP 旋转按钮后,我得到了看起来更好的设置。两行标题,标题从第 2 行开始,数据从第 5 行开始。
调整设置的工作表预览
我按下导入按钮,我的 1000 多行数据就进来了。BLS 提供了更详细的数据集,但这个汇总数据集似乎可以满足我的需求。唯一不幸的是,我的 JMP 表似乎存在列转换为字符格式的问题。什么地方出了错?

左对齐文本表示字符格式
如果我扫描数据,我可以看到表格末尾有四行脚注。

默认情况下,JMP 扫描前 100 行数据以确定类型。这可以实现高效、响应灵敏的预览。但是,当实际导入完成时,将扫描所有行并将列转换为字符以防止数据丢失。我当然可以直接更改列类型,但我也可以返回并以不同的方式进行导入。在“预览窗格刷新”面板下,有一个“显示所有行”复选框。当我选择此选项时,它不仅在预览窗格中显示表中的所有行,而且还使用所有行进行列键入。

显示所有行
现在,我可以转到表格末尾并指定数据在脚注上方结束。 我需要按向导中的“下一步”按钮才能进入选项的第二页。 我单击要包含的数据预览中的最后一行,然后按向导第二个窗格中“数据以行结尾”旁边的绿色加号按钮。向导将填写正确的行号,我可以再次按“导入”以获得正确格式的数据。
现在,我已将数据干净地输入 JMP,其中有一千多个职业可供搜索。前两列的名称巨大且令人困惑,因此我将它们缩短为矩阵标题和矩阵代码,遵循 BLS 中的较长名称。现在,最好缩小焦点。该表包含一个名为职业类型事实似乎根本不是那样。对于此列,每行仅显示“摘要”和“行项目”。事实证明,Summary 意味着该行适用于某种类型的所有工作,就像所有工程师一样。“行项目”可能是机械工程师。因此,我想做的第一件事就是删除所有摘要行。我可以执行“选择位置”之类的操作,然后对表进行子集化以删除摘要行。但是,我想应用其他过滤器。查询生成器非常适合此目的。
如果您不熟悉 JMP 查询生成器,它是一个功能强大的查询工具,提供 GUI 来在 JMP 数据表上创建 SQL 查询。有具有相同接口的对应项,可通过 ODBC 查询数据库,并通过 JMP 至 SAS 连接器查询 SAS 表。不过,您不必了解 SQL 即可使用查询生成器。您可以通过用户界面创建查询并将其保存以供重复使用,而无需查看底层 SQL。
JMP 表的查询生成器是从“表”菜单中调用的。首先出现的表选择对话框允许您指定要连接以进行查询的表。在本例中,我真的只想过滤数据,因此我将把已经导入的表作为我的主表,然后继续。

查询生成器表选择
选择“构建查询”将打开我的主查询构建对话框。前两列包含 BLS 职业名称和代码,命名仍然有些晦涩矩阵标题和矩阵码。我不关心代码,所以我会忽略它。我仍然对职业列的名称不满意,因此在将该列添加到查询中后,我将单击“JMP 名称”打开一个编辑框,将查询后结果的标题更改为职称。

更改查询后列名称
我还将添加职业类型列,因为我想排除摘要项目。我会添加就业变化,2014-2024 – 数字因为我对实际增加的工作数量感兴趣。增长百分比栏看起来很有趣,但可能会产生误导。增长最快的职业之一是风力涡轮机维修人员。然而,这个数字正在从五千增长到一万,因此相对于许多领域来说仍然很小。因此,我会选择增加的就业岗位数量,而不是增长百分比。
我也来补充一下年工资中位数因为这是我儿子的标准之一,也是入学所需的典型教育。最后,我还将添加可能是所有栏目中最重要的栏目: 2014-2024 年因增长和替换而出现的职位空缺。事实证明,许多职业增长相对缓慢,但需要替代大量退休工人,这对于入门级工人来说有巨大的机会。机械工程就是一个例子。十年间,就业岗位温和增长 14,600 个(5%)。然而,如果算上替换的话,该职业的 277,500 个工作岗位中新增的工作岗位总数为 102,500 个!这是一个典型的比例。统计人员需要在这段时间内更换 50% 的职位。以下是执行任何过滤之前的查询生成器列选择:

过滤前查询
我想添加一个反映工作替代和增长百分比的专栏。我可以通过“可用列”选择红色小三角菜单,然后选择“添加计算列”。我可以选择职位空缺…作为分子和就业-2014作为我的除数并按“确定”。
添加计算列
该列是使用名称创建的计算1 。我可以使用上下文菜单将名称更改为岗位总数然后将其添加到我的包含列中。在那里,我可以将格式字段更改为百分比。 由于变量名称较长,您可能需要展开“包含的列”窗格才能查看所有字段。现在我想我已经准备好开始使用一些过滤器来减少搜索。
首先,我可以拖动职业类型到过滤器面板。在那里,我可以单击“行项目”以仅包含非汇总类型的行。现在,我要过滤年工资中位数只包括那些每年超过 75,000 美元的工作。当我把年工资拖到低于我的水平时职业类型过滤器,默认会进行AND运算。 这就是我要的。 如果您想要进行“或”运算,则需要通过单击“或”按钮来启动该操作。我也投入了需要典型的教育并进行扩展选择“学士学位”、“硕士学位”和破折号,这意味着未编码。最后,我注意到剩下的很多工作都是管理类型的工作。入门级人员不太可能获得管理职位,因此我想排除这些职位。我可以使用“包含”过滤器来做到这一点,将其切换为“不包含”。为此,我将鼠标拖到“矩阵标题”变量上。然后,通过红色三角形下拉菜单,我可以选择“过滤器类型->包含”。旁边将出现一个下拉列表标题,我可以选择“不包含”,然后填写“经理”。 我现在可以对“执行官”做同样的事情来罢免首席执行官(顺便说一句,10 年来减少了 3%)。完成后的过滤器列表如下所示:
已完成的过滤器
现在我可以按“运行查询”并获取包含我想要的数据的表。我们已将一千多行减少到五十八行。我们可以保存查询以便稍后重新打开它进行修改。用于生成表的查询也保存为数据表中的表脚本。可以对其进行编辑以查看正在执行的操作,运行它以重新创建数据,甚至更改查询(请小心这一点)。

数据表中的源脚本
现在我有了数据,我要选择职称成为我图表中的标签。我将启动图形生成器并输入年工资中位数对于我的 X 值,以及职位空缺…对于 Y。为了包含更多信息,我将选择需要典型的教育……对于颜色,我将通过拖动将标记大小设置为百分比,以显示相对于整个工人池添加的工作数量岗位总数到尺寸放置区。当我浏览此图表时,我注意到软件工作占据了相当显着的位置。我将应用程序和系统软件工作制作成钻石标记。我可以将其发送给我主修计算机科学的大儿子,以向他保证他做出了正确的选择。在对标题进行最后调整后,该图最终看起来像这样:

JMP 中的图形生成器输出
我决定将此输出作为交互式 HTML 报告发送给我的大儿子。他可以轻松地在工作时或在桌面上玩游戏时将鼠标悬停在这些点上并探索数据。交互式 HTML 会在 HTML 报告中发送分析数据,因此如果您使用敏感数据,请注意这一点。我可以使用“文件”->“另存为”(在 Mac 上为“文件”->“导出”)轻松创建报告,然后从“保存类型”下拉列表中选择“带有数据的交互式 HTML”。我可以将此独立报告邮寄给我的儿子,他可以在网络浏览器中将其打开并将鼠标悬停在要点上进行查看:
Chrome 中的交互式 HTML 报告
我的小儿子,也就是最初的观众,经常使用他的 iPad。我想向他发送这些数据的初步查看,但允许他自己进行更多探索。iPad 版 Graph Builder 将打开 JMP 数据表,如果在表中找到 Graph Builder 脚本,它将自动在 Graph Builder 中将其打开。我可以通过分析来准备我的数据表,然后让我的儿子自己探索数据。我想在这张图中更多地强调开口的数量。我从职位空缺…作为 Y 和职称为X,工资为颜色范围。然而,它看起来很忙而且有点混乱:

初步尝试
我可以重新打开“图形生成器”控制面板,只需单击“树图”按钮即可获得我更喜欢的图形。最好的部分是,可以轻松地将鼠标悬停在正方形上并获取更多信息:
图形生成器树图
在发送数据表之前,我需要在其中嵌入图形生成器脚本。我通过使用“图形生成器”大纲节点旁边的红色三角形下拉菜单,然后选择“保存脚本”->“到数据表”来完成此操作。系统提示我为脚本提供一个名称,我将其命名为“职位空缺”,然后单击“确定”。这会将树形图脚本嵌入到表中。
现在我可以将数据表放在云存储文件夹中,例如 Dropbox、iCloud 或 Google Drive。iPad 版 JMP Graph Builder 知道如何查看这些框,我可以快速将表格下载到 iPad 上。最初只有一个大的 JMP 图标来选择表格。
表选择窗格
单击此按钮后,图形生成器应用程序将打开表,查找表中嵌入的第一个图形生成器脚本,并显示该分析。
图表自动打开
现在我的儿子有了数据和我的初步分析,他可以自己尝试这些数据和图表。例如,他可以按“过滤器”并选择任何列进行探索。一个例子可能是过滤“入职所需的典型教育”,以查看哪些职位需要学士学位,哪些职位需要硕士学位:

按所需程度过滤
Graph Builder 应用程序的另一个非常好的功能是,您可以尝试 Graph Builder 桌面版本中提供的大多数图表。因此,如果我的儿子想要查看不同的视觉效果,甚至拖动不同的列以不同的方式查看数据,他都可以做到。列名称旁边有“夹点”,表示您可以拖动它们,并且当您拖动变量时,熟悉的图形生成器放置区域将突出显示。还有标记、背景颜色和轴的自定义功能。他可能会将输出更改为如下所示:

使用 iPad 应用程序创建新图表
我的工作就这样完成了。我已经向每个儿子发送了一份互动报告供他们考虑。对于仍在探索的儿子,他可以创建自己的报告,并希望对他的选择有所了解。
还有许多其他方法可以将数据导入 JMP,包括通过连接到 SAS、导入文本数据、从其他来源获得的 SPSS 数据、Triple-S 调查数据等等。查看“文件打开”对话框,了解您的多种选择,并了解您生成的报告可以以交互方式与其他人共享,即使您的收件人没有 JMP。
[1]美国。 劳工统计局。就业预测。 劳工统计局,网站。 2017 年 8 月 18 日。 https://www.bls.gov/emp/ep_data_occupational_data.htm