我不确定这里是否有单一的最佳解决方案——这在很大程度上取决于您的环境、您的用户等。
如果您有相当天真的用户,那么如果可能的话,我肯定会推荐一个完整的存储库;如果您使用单个 SAS 版本/操作系统/位,则无论是 .sas7bcat 文件,还是要输入 PROC FORMAT 的现成表/数据集(以及它们的 autoexec 中包含的 .sas 文件来执行导入)。这样做的最大缺点是您必须主动管理它(例如,您不能允许用户将自己的格式写入主格式数据集,因为他们可能会覆盖其他格式),并且将有额外的工作来确保格式名称不冲突 -YNF.
可能是1=YES 2=NO
或1=YES 0=NO
或其他东西。这也不允许您非常轻松地处理生效日期;但这可能对您的用户更好(然后单独处理文档)。
如果您有更高级的用户,那么您可能会考虑使用更具关系性的表/数据集。混合方法可能包括带有列的数据集:
- 数据集名称(根据需要限定以确保唯一性)
- 格式名称
- 开始
- 标签
- 其他元素(类型、HLO 等)
- 生效日期
这将允许用户进行自己的修改(假设您足够信任他们可以正确添加数据集名称,无论如何 - 或设置存储过程以从检查冲突的临时表中进行添加)并允许您处理格式名称矛盾的。如果有必要,您仍然必须有一种方法让用户处理使用多个数据集(例如,默认情况下向格式名称添加一些唯一元素,如“数据集 ID”)。
然而,在我看来,最好的选择是使用数据字典来处理元数据,它将自文档与元数据管理相结合。与上面类似,您有一个包含数据集和格式元素的表,但根据您的用例添加描述性文本(例如问题描述)和其他有用信息的列。这可以保存在数据库表或数据集中,或者更有用的是可以与非程序员共享并易于编辑的 excel 或类似文档。我在几个项目中使用了这种方法,并且通过允许我的用户帮助为我的代码编写文档,使我的程序保持准确和最新,同时最大限度地减少更新的来回讨论,它得到了回报。每次运行数据时,我只需导入电子表格并运行 proc 格式。
然后,您可以为每个数据集创建一个电子表格、一个选项卡或一个包含所有数据集的完整电子表格 - 以最容易使用的为准。这也很容易处理“生效日期”类型的问题——甚至是版本控制,因为这可以在电子表格中处理。