<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />在我的最后发表 ,我详细介绍了如何从SAS支持站点提供的表中获取9位邮政编码以及它们的X和Y坐标。我将此信息传递给有问题的客户,他可以将9位邮政编码信息合并到他的表中。他的下一个问题是获取与这9位数邮政编码相对应的城市和州信息。
我在网上做了一些挖掘,发现图形显示各种状态的5位zip前缀,遵循可预测的模式。
接下来,我在Wikipedia上找到一个表,其中包含州名,城市和邮政编码前缀,并弄清楚了如何将其加入到我在上一篇文章中创建的9位邮政编码表中。
在JMP中,您可以执行以下操作以将城市和州信息添加到任何包含5位邮政编码的表中:
- 请点击文件>互联网打开 。在弹出的对话框中,粘贴以下链接: https://zh.wikipedia.org/wiki/ZIP_code_prefixes清单 。 选择网页从下拉菜单中,然后单击确定。
- 请点击文件>另存为数据表 。在弹出的对话框中,将所有内容保持选中状态,然后单击“确定”。 一堆表将在JMP中打开。
- 请点击表格>串联 ,然后删除选择列表中当前显示的所有内容。 现在,选择所有包含邮政编码信息的打开的表。它们的名称以“邮政编码前缀列表”开头。在“连接”对话框中选中“创建源列”,然后单击“确定”。 现在,您将拥有一个包含多列数据的大表。我们需要将它们堆叠起来,以使它们全部集中在一列中。
- 请点击表格>堆栈 ,选择第1列到第10列,然后选择它们作为“堆栈列”。单击确定。现在,我们有了一个带有源代码,标签和数据列的表。 数据包含邮政编码的3位数字前缀,状态和位置。 但是它仍然需要一些清理。
- 选择数据列标题,然后单击列>实用程序>文本到列 。对于定界符,输入一个空格。( 注意: “实用程序”菜单和“文本到列”仅在JMP 12中可用。如果您使用的是较早版本,则可以选择几种方法来解决此问题。 : 您可以下载杰夫珀金森氏 TexttoCols插件从JMP文件交换中,将其拖到JMP中进行安装,它将在添加菜单中添加一个项目,或者您可以将您的JMP表保存为Excel格式,然后使用Excel中的“文本转换为列”功能(也拆分空格),然后将Excel文件重新导入JMP。)
- 双击“数据1”列标题以将其重命名为Zip前缀
- 双击“数据2”列标题,将其重命名为“状态”。 选中“状态”列,然后单击Control-F(或Mac等效),然后选中“限制到选定的列”框。 查找*,什么都不要替换。查找否,什么都不替换。
- 按住Shift键,选择数据3至数据8列。请点击列>实用程序>合并列 。(同样,仅在JMP 12中可以找到,尽管您可以在早期版本中使用公式列进行串联)。在“合并列”对话框中,将“城市”指定为列名,然后在“分隔符”框中将“,”替换为一个空格。单击确定。
- 现在,您会看到一列城市名称以及空格。我们希望将“未使用”字符串恢复到应有的行中,因此,请选择该列,再次查找并替换,将“使用中”替换为“未使用”,因为它最初是在删除之前不在状态列中。您可以检查表格,基本上所有未列出状态的行都应在城市列下使用未使用而不是城市名称。
- 现在,在邮政编码数据表中,您将需要解析邮政编码变量,以获取前3位数字与我们新导入的表相匹配。
- 打开您的邮政编码表,然后双击现有列之后的第一个空列。 这将创建一个名为Column 7的新列。双击以打开“列属性”对话框。将数据类型更改为字符,然后将列重命名为三位数前缀。从该对话框的“列属性”下拉列表中,选择“公式”。
- 在打开的“公式编辑器”窗口中,在“表列”下的列列表下选择“ ZIP”,然后在“功能”下的列选择器下选择“字符”>“ Substr”。在“开始”框中,键入1,在“长度”框中,键入3。单击确定。
- 如果你现在做表格>联接并通过两个3位数字的前缀变量进行匹配,则应该将街道,城市,州和邮编变量放在一起。我使用这些设置来加入。请注意两个表的匹配列和“包括不匹配”复选框。

我使用上述步骤将城市和州信息添加到我的ZIP4数据表中,该表包含我从SAS支持站点导入的9位邮政编码,并绘制了X和Y坐标的图:

(干得好拜伦 ! )