带有var名称空格的sas7bdat

时间:2013-08-16 22:02:56

标签: sas

我收到了几个扩展名为.sas7bdat的SAS数据集文件。我在Windows上使用SAS 9.3,这些文件的创建者显然使用了不同的环境和/或软件。许多文件的var名称包含空格和其他无效字符。即使运行proc contents也会引发如下错误:

ERROR: The value Person ID is not a valid SAS name.

奇怪的是,SAS Enterprise Guide会打开并显示该文件而不会抱怨。

如何有效地重命名所有错误的var名称,以便我可以开始使用这些文件运行实际程序?

2 个答案:

答案 0 :(得分:4)

除了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;

根据其他详细信息(例如可能会产生重叠的变量名称),您可能需要调整这些问题的代码。

答案 1 :(得分:1)

我认为它不是一个不同的OS / SAS版本。我认为您可能需要提交以下内容

options validvarname = ANY;