我正在尝试通过执行以下操作在SAS中创建用户定义的格式:
1)在Excel中创建用户定义的格式 2)将表作为数据集导入SAS 3)读取数据集以创建新格式
这似乎有效,除了一个snafu。我以前创建了完全相同的数据集/格式,但使用了非法的SAS命名约定。我使用了惯例“_14_to_17” - 当你以数字结尾时,SAS不喜欢,并且出错了。
我认为将格式名称/表更改为_14_17_map可以解决问题(最后没有数字!)但是现在它只是给了我这个错误 -
ERROR: The format name $_14_TO_17 ends in a number, which is invalid.
ERROR: Format name '' is invalid. Observation ignored.
在proc格式步骤中。
有趣的是,我使用“_14_15_map”的正确命名约定创建了其他格式,这些约定是先前使用不正确的“_14_to_15”命名约定创建的 not 。这些格式似乎很好。
有谁知道我在这里缺少什么?
这是我的宏:
%macro import_format(file,sheet);
*imports the table - this step is working;
proc import
datafile="&file."
out=userlib.&sheet.
dbms=excel replace;
SHEET="&sheet.";
GETNAMES=YES;
run;
*creates the format - this step is NOT working;
PROC FORMAT CNTLIN=userlib.&sheet. library=userlib;
run;
%mend;
%import_format(&format_library.,_14_17_map);
感谢您的帮助!