【问题标题】:Where are the SAS formats defined?SAS 格式在哪里定义?
【发布时间】:2018-11-07 06:54:57
【问题描述】:

当我启动 SAS 会话并将库定义到文件夹时:

LIBNAME testlib "C:\DATA\&YRMTH\TEST\";

当我导航到testlib 时,我已经看到了一堆已定义并可以使用的格式。我不确定它们是在哪里定义的,我找不到它们。我需要编辑其中一种格式,如何找到源? YRMTH 是一个宏变量,包含 YYYYMM,对应今天的日期。

【问题讨论】:

  • 您的意思是在 Windows 资源管理器中,如果您转到文件夹 C:\Data\YYYYMM\Test,您会在那里看到一个格式目录,名称类似于 formats.sas7bcat 吗?这种格式很可能是用代码构建的,因此您可以查找该代码。正如理查德所说,如果找不到代码,可以使用 PROC FORMAT CNTLOUT 将格式写入数据集,然后可以编辑该数据集并使用 PROC FORMAT CNTLIN 更新格式。也许编辑您的问题以显示您拥有的格式以及您想要生成的格式。

标签: sas


【解决方案1】:

Proc FORMAT 源代码不与生成的格式目录条目一起存储。

您可以使用该选项将您自己的库中的格式目录添加到格式搜索路径中。来自Usage Note 23007: How can I permanently store and use formats that I have created?

OPTIONS FMTSEARCH=(catalog-specification-1... catalog-specification-n);

您可能永远找不到创建该格式的原始源代码!然而,一切都没有丢失。自定义格式的控制数据可以使用PROC FORMAT CNTLOUT=提取。可以编辑自定义格式,方法是操作提取的控件数据并使用PROC FORMAT CNTLIN= 将其运行回以重新创建(覆盖)原始自定义格式。请记住,如果您不注意备份或归档您的目录、目录条目或提取的控制数据,这可能是一个不可逆的过程。

不确定您的宏变量如何参与格式讨论。如果有更多信息要分享,请更新问题。

【讨论】:

    猜你喜欢
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多