立即注册 登录
公卫人 返回首页

asteriod的个人空间 https://www.epiman.cn/?12177 [收藏] [复制] [RSS]

日志

用SAS处理中文变量名的Excel文件

热度 3已有 2816 次阅读2009-11-11 11:03 |个人分类:sas|

     EXCEL是非常常见的数据格式,用SAS处理数据就涉及到将数据读入进来。读入的方法,前面有所介绍,今天来探讨一个小细节,如果原始的Excel文件的变量名是中文怎么办?因为我们都知道SAS不支持中文名。首先,最简单的办法是直接在Execl里改好,这种方法简单有效,但如果数据量过多,变量很多的时候,另外要批量处理大量的excel文件的时候就不方便了。第二种办法是,忽略变量名直接从第二行开始读入数据,数据读入进来之后,再对默认的系统变量名进行修改。当然处理大量数据的时候,用宏做一个循环也可以实现大批量的操作。还有第三种办法,直接给要操作的excel文件改名。改完名后自动保存,sas就可以直接读入了。好处是“一键”处理数据,直接就从原数据到报表了。

   举个最简单的例子:

   在D盘根目录下,有一个data.xls的文件,其sheet1中有如下数据结构的数据。要改名为如右图的效果。
  

可以用下面的sas程序实现,需要修改或注意的地方用颜色做了注释:

options noxwait noxsync;

x '"C:\Program Files\Microsoft Office\OFFICE11\excel.exe"'; /*这是你机器上excel软件的安装目录,不同版本略有不同,使用时做调整*/

data _null_;

x=sleep(5); /*sas休息一会,休息时间由你定*/

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!r1c1:r1c3'; /*要修改变量名的excel区域*/

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修改上面的程序了。变量名多的话可能还需要要做一个数据字典来调用了。这种方法的好处就不多讲了,目的还是“一按运行,万事搞定!”

路过

鸡蛋
3

鲜花

握手

雷人

刚表态过的朋友 (3 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

手机版|会员|至尊|接种|公卫人 ( 沪ICP备06060850号-3 )

GMT+8, 2024-5-15 03:36 , Processed in 0.028241 second(s), 6 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部