我有一个如下所示的数据集:
adjuster adjuster_zip
A-20 98216
A-14 98214
A-17 98216
A-20 California
我需要格式化这个数据集,以便adjuster_zip全部为数字。我有几百个调整器,它们都出现了几百次。但是,他们每个调整器只有一个邮政编码。正如您在A-20中看到的那样,此调整器具有有效和无效的邮政编码。所有包含无效邮政编码的理算员也都有有效的邮政编码。如何自动执行此操作,以便SAS通过调整器将无效的邮政编码切换为有效的邮政编码?
感谢您的帮助。
另外,我无法弄清楚如何格式化数据,使其显示在表格中。遗憾。
答案 0 :(得分:1)
我的建议是为每个调整器构建一个格式表。从输入数据集开始;然后过滤到只有效的邮政编码(您可以使用NOTDIGIT检查任何非数字值,并检查LENGTH只有五个长)。然后使用FMTNAME
作为常量字符串创建一个数据集,其中任何合法格式名称前面都是$($ADJZIPF
将是一个好的cohice),START
等于包含调整器的变量名称,LABEL
是拉链。然后使用PROC FORMAT
和cntlin=
刚刚定义的数据集。
这样您就可以使用PUT
和自定义格式查找每个调整器的zip。你仍然要担心一些事情;该表必须是每个调整器不重复的,因此您需要决定如何处理具有两个或更多拉链的调整器;并且您需要检查何时使用PUT它确实找到了邮政编码。