0

我正在尝试通过执行以下操作在 SAS 中创建用户定义的格式:

1) 在 Excel 中创建用户定义的格式 2) 将表作为数据集导入 SAS 3) 读取数据集以创建新格式

这似乎是有效的,除了一个混乱。我之前创建了完全相同的数据集/格式,但使用了非法的 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”命名约定创建。这些格式似乎可以正常加载。

有谁知道我在这里想念什么?

这是我的宏:

%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);

谢谢你的帮助!

4

0 回答 0