SAS格式在哪里定义?

SAS格式在哪里定义?,sas,Sas,启动SAS会话并将库定义到文件夹时: LIBNAME testlib "C:\DATA\&YRMTH\TEST\"; 当我导航到testlib时,我已经看到了一系列已定义并准备好使用的格式。我不确定它们的定义在哪里,也找不到它们。我需要编辑其中一种格式,如何定位源?YRMTH是一个包含YYYYMM的宏变量,对应于今天的日期。Proc FORMAT源代码不会与生成的格式目录条目一起存储 可以使用选项将您自己库中的格式目录添加到格式搜索路径中。从 OPTIONS FMTSEARCH=(ca

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

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

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

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

可以使用选项将您自己库中的格式目录添加到格式搜索路径中。从

OPTIONS FMTSEARCH=(catalog-specification-1…catalog-specification-n)

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


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

如果转到文件夹C:\Data\yyyyymm\Test,是否意味着在Windows资源管理器中会看到一个名为formats.sas7bcat的格式目录?这种格式可能是用代码构建的,因此您可以查找该代码。正如Richard所说,如果找不到代码,可以使用PROC FORMAT CNTLOUT将格式写入数据集,然后可以编辑该数据集并使用用户PROC FORMAT CNTLIN更新格式。也许可以编辑您的问题,以显示您拥有的格式以及您希望生成的格式。