利用SAS读入中文名的Excel文件示例代码
EXCEL是非常常见的数据格式,用SAS处理数据就涉及到将数据读入进来。读入的方法,前面有所介绍,今天来探讨一个小细节,如果原始的Excel文件的变量名是中文怎么办?因为我们都知道SAS不支持中文名。首先,最简单的办法是直接在Execl里改好,这种方法简单有效,但如果数据量过多,变量很多的时候,另外要批量处理大量的excel文件的时候就不方便了。第二种办法是,忽略变量名直接从第二行开始读入数据,数据读入进来之后,再对默认的系统变量名进行修改。当然处理大量数据的时候,用宏做一个循环也可以实现大批量的操作。还有第三种办法,直接给要操作的excel文件改名。改完名后自动保存,sas就可以直接读入了。好处是“一键”处理数据,直接就从原数据到报表了。 举个最简单的例子: 在D盘根目录下,有一个data.xls的文件,其sheet1中有如下数据结构的数据。要改名为如右图的效果。 利用SAS读入中文名的Excel文件示例代码
可以用下面的sas程序实现,需要修改或注意的地方用颜色做了注释: options noxwait noxsync; x '"C:\Program Files\Microsoft Office\OFFICE11\excel.exe"'; data _null_; x=sleep(5); filename comma1 dde 'excel|system'; options xsync; data _null_; file comma1; put '[close("Book1")]'; put '[open("d:\data.xls")]'; run; filename random dde 'excel|sheet1!r 1c1:r1c3'; data string; file random; varname1='name'; varname2='sex'; varname3='age'; ; put varname1 varname2 varname3; run; data _null_; file comma1; put '[SAVE()]'; put '[QUIT()]'; run;
运行完毕后(时间长短和机器配置有关),打开那个excel文件名字已经改了,可以用sas读了。当然要实现批量处理,你可以用macro修改上面的程序了。变量名多的话可能还需要要做一个数据字典来调用了。这种方法的好处就不多讲了,目的还是“一按运行,万事搞定!” |