我正在使用SAS企业指南,将美国社区调查表格从人口普查导入到脚本中以使用它们。以下是我正在导入SAS企业指南的原始人口普查csv的示例:

在我的数据步骤中,当我使用以下命令时
County=Geo.display-label;我得到了这个错误:

在base SAS中,我使用的是
County=Geo_display_label;虽然这在基本SAS中有效,但当我在企业指南中尝试时,我得到了以下错误:

让原始数据的变量名Geo.display-label正确读入SAS Enterprise Guide的方法是什么?
发布于 2017-02-09 05:56:29
要查看VALIDVARNAME选项对当列标题不是有效的SAS名称时PROC IMPORT生成的名称的影响,让我们创建一个测试CSV文件。
filename csv temp ;
data _null_;
file csv ;
put 'GEO.id,GEO.id2,GEO.display-label';
put 'id1,id2,geography';
run;如果在VALIDVARNAME选项设置为ANY时运行PROC IMPORT将其转换为SAS数据集,则它将准确使用列标题,包括句点和连字符等非法字符。要引用包含这些非法字符的变量,我们需要使用名称字面量。
options validvarname=any;
proc import datafile=csv replace out=test1 dbms=dlm;
delimiter=',';
run;
proc contents data=test1; run;
proc freq data=test1;
tables 'GEO.display-label'n ;
run;但是如果我们将该选项设置为V7,那么它会将非法字符转换为下划线。
options validvarname=v7;
proc import datafile=csv replace out=test2 dbms=dlm;
delimiter=',';
run;
proc contents data=test2; run;
proc freq data=test2;
tables geo_display_label ;
run;发布于 2017-02-09 04:27:21
County = 'geo.display-label'n;如果在EG中设置选项VALIDVARNAME=V7;,您将获得与批处理sas相同的名称。
https://stackoverflow.com/questions/42122185
复制相似问题