此外,option validvarname=ANY;
您还需要将变量名称引用为名称文字:('Person ID'n
单引号或双引号都可以)。
如果您想有效地重命名所有这些,您可以执行以下操作:
options validvarname=any;
data have;
'Hello Var'n = 1;
'Another Var'n = 2;
x=3;
run;
data badvarnames;
set sashelp.vcolumn;
where libname='WORK' and memname='HAVE' and not nvalid(name,'v7');
validname = translate(trim(name),'_',' ');
name = cats("'",name,"'n");
run;
proc sql;
select catx(' ','rename',name,'=',validname,';') into :renamelist
separated by ' ' from badvarnames;
quit;
proc datasets lib=work;
modify have;
&renamelist;
quit;
proc contents data=have;
run;
根据其他细节(例如这可能会创建重叠的变量名称),您可能需要针对这些问题调整代码。