我仍然坚持使用 SAS 特殊字符处理。
%macro mFormat();
%do i=1 %to &numVar. ;
proc format library = work ;
invalue $ inf&&nomVar&i..s
%do j=1 %to &&numMod&i.;
"%superq(tb&i.mod&j.)" = &j.
%end;
;
run;
proc format library = work ;
value f&&nomVar&i..s
%do k=1 %to &&numMod&i.;
&k. = "%superq(tb&i.mod&k.)"
%end;
;
run;
%end;
%mend mFormat;
%mFormat();
如您所见,程序假设为每个变量创建格式和信息。我唯一的问题是当变量名称解析为包含
GOTAN-GOTAN
FRANCES-FRANCES
+&DECO-+DECO&
等...
这些名称导致我出现此错误
“错误:此范围重复,或值重叠:”</p>
我希望我可以强制 SAS 读取这些名称。或者,这不是为包含这些字符(&、%、-、'、")的变量生成 FORMATS 和 INFORMATS 的最佳方法。