本站分享:大数据、数据分析师考试认证培训,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训广告位

SAS批量导入EXCEL中数据_sas批量导入excel中数据格式

sas培训 cdadata 444℃ 0评论
SAS批量导入EXCEL中数据
关键词:sas怎么导入excel数据,sas批量导入excel
把EXCEL数据导入SAS相信是各位朋友经常碰到的问题,把数据导入SAS中的方法有很多:infile import 或者通过菜单操作均可实现,但如果导入的EXCEL中包括大量的SHEET ,是一个很麻烦的工作。
把以前写过的一段脚本分享到博客中,也方便下次自己查找。
整体逻辑过程:
1、首先,确定如何如何读入EXCEL中SHEET。
2、根据EXCEL中的SHEET的数量使用一个循环来读入数据。 
主要用到的几个过程为:
一、libname 库名 EXCEL 地址

这是一个很实用库建立过程,这个改天写篇短博来讨论。

1、通过libname 库来引入某个EXCEL中的所有 SHEET 数据。

2、按每sheet会对应在库下生成一个数据集

二、数据字典

   SAS中有Dictionary Tables 存储了系统相关设置各个库现表字段的相关信息  相当于一个元数据的元数据。

1、在SAS会话开始的时候创建。

2、vstabvw存储了每个库的内容:表名、类型。

三、宏

  1、通过宏来实现这个过程,EXCEL的名字作为参数似入到宏程序中。

  2、注意间接引用宏的时候要注意。

 

 
下面提如何通过宏脚本来实现批量导入EXCEL数据到SAS中。
%let dir=C:\demo;
%macro ReadXls (name);
libname excellib excel “&dir.\&name”;
proc sql noprint; 
create table sheetname as
select tranwrd(memname, “””“‘” ) as sheetname
from sashelp.vstabvw
where libname= “EXCELLIB”;
select count(DISTINCT sheetname) into :number
from sheetname;
select DISTINCT sheetname into :sheet1 – :sheet% left(&number)
from sheetname;
quit;
libname excellib clear; 
%do i=1 %to &cnt_sht;
proc import datafile= “&dir.\&name” 
out=sheet&i replace;
sheet= “&&sheet&i”;
getnames=yes;
mixed=yes;
run;
proc append base=master data=sheet&i force; 
run;
%end ;
%mend ReadXls;
%ReadXls (test.xls)

转载请注明:数据分析 » SAS批量导入EXCEL中数据_sas批量导入excel中数据格式

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址