SAS批量读入Excel+批量修改变量名.docx

SAS批量读入Excel+批量修改变量名.docx

ID:58676325

大小:33.23 KB

页数:3页

时间:2020-10-15

SAS批量读入Excel+批量修改变量名.docx_第1页
SAS批量读入Excel+批量修改变量名.docx_第2页
SAS批量读入Excel+批量修改变量名.docx_第3页
资源描述:

《SAS批量读入Excel+批量修改变量名.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、收集了N多Excel表格,如何将他们汇总在一块儿呢?如果会VBA,这或许也不是一件难事,事实上有些Excel插件就可以解决这个问题。这里看看如何用SAS来解决/*指定需要合并的文件的路径*/%letpath=D:test;/*注意dir后面与路径之间要有空格*/filenamefilespipe"dir&path/b";/*读入文件名列表*/datatest;infilefilestruncover;inputname$96.;run;/*获取文件名宏变量和文件个数宏变量*/procsqlnopri

2、nt;selectscan(name,1,';'),count(name)into:filenamesseparatedby';',:nfromtest;quit;/*循环读入Excel文件*/%macroinfiles;%locali;%doi=1%to&n;procimportdatafile="&path.%scan(&filenames,&i,';')"out=_a&idbms=excelreplace;run;%end;%mend;%infiles/*合并文件*//*这一步也可以放在上面的

3、循环中处理*/%macroappends;%locali;%doi=2%to&n;procappendbase=_a1data=_a&i;run;%end;datafiles;set_a1;run;%mend;%appends;/*删除文件*/procdatasetslib=worknolist;delete_a:/memtype=data;quit;如果是遇到这样的表头呢?好吧,当然也是可以正确读入的。libnamelocal"d:test";%letin_file_path=d:test;%m

4、acroin_file(in_file_name,read_sheet_name,fstobs,out_file_name);procimportout=&out_file_namefile="&in_file_path&in_file_name"dbms=excelreplace;dbdsopts='firstobs=&fstobs';getnames=no;scantext=yes;usedate=yes;sheet=&read_sheet_name;scantime=yes;dbsaslabe

5、l=none;run;%mend;%in_file(-XXXX花名册-(3)副本.xlsx,在职名册,4,hr);/*如果不加dbsaslabel选项,打开数据集时会发现字段名称为A,B,C...打开缓慢,会导致SAS崩溃*//*建议使用office2013及以上*/读入后发现字段名是这样的,没有任何意义,怎么批量改?/*批量修改变量名*//*应用场景:*//*读入带有中文列名的Excel表格时,会产生例如_col1,var1,F1等形式的字段名,这往往不是所需要的*//*一个一个rename比较麻烦

6、,可以采取批量修改的方式,特别是读入表格较多的时候*//*注意:新的字段名需要与原字段名位置相对应,逻辑库和数据集名称需要大写*//*%rename(WORK,A,'aabbccddeeffgghh');*//*例如要将abcdefgh修改为aabbccddeeffgghh*/dataa;inputabcdefgh;stop;cards;;run;%macrorename(lib,dsn,newname);data&LIB..&dsn._copy;set&LIB..&dsn.;run;procsqln

7、oprint;selectnvarinto:num_varsfromdictionary.tableswherelibname="&LIB"andmemname="&DSN";selectdistinct(name)into:var1-:var%trim(%left(&num_vars))fromdictionary.columnswherelibname="&LIB"andmemname="&DSN";quit;procdatasetslibrary=&LIB;modify&DSN;rename%d

8、oi=1%to&num_vars.;&&var&i=%scan(&newname,&i,'')%end;;quit;%mendrename;%rename(WORK,A,'aabbccddeeffgghh');

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。