Import File(.CSV) to SAS/获取文件夹、文件名称

2019-10-21 17:10:35 浏览数 (1)

今天给大家Share的是关于CSV导入SAS、以及filename获取文件夹名称、文件名称 ----Setup~

Import .CSV to SAS

CSV导入到SAS中,如何自动把第一列的内容做为变量的标签呢,达到Excel的Import的效果。接下来我看我给大家Share一个简单的CSV2SAS的Macro程序...假如大家有更好方法,欢迎留言私信指点。。

%macro csv2sas(path,csvname,outds);

proc import out= &outds

datafile= "&path.&csvname."

dbms=csv replace;

getnames=No;/*是否获取变量名称*/

datarow=1; /*从第一行记录开始读取*/

guessingrows=500;/*读入前500行 避免读入时候找出数据截断 如数据量大时可以设置大一些,但影响运行速度*/

run;

data _tem1;

set &outds.;

if _N_=1;

proc transpose data=_tem1 out=_tem2 prefix=TYP;

by notsorted ;

var _all_;

run;

data _tem2;

set _tem2;

if missing(TYP1) then delete;

TYP1=tranwrd(TYP1,'"',"'");

_label=catx("=",_NAME_,compress('"'||TYP1||'"'));

run;

proc sql noprint;

select _label into:_label separated by " " from _tem2 ;

quit;

data &outds.;

set &outds.;

if _N_>1;

label &_label.;

run;

proc delete data=_tem1 _tem2 ;quit;

%mend;

%csv2sas(path=E:Sta_pgmCSV,csvname=m_stu_one.CSV,outds=TABLE)

效果如下

filename获取文件list

获取文件名以及文件夹list的用途?

当有大量外部文件需要导入到SAS中,我们如果一个文件一个文件的输入文件名导入SAS是一件很没劲的重复的无趣的事情...而且也可能出错...利用SAS语言可以直接在SAS中获取文件名称到数据集中,在通过赋值给Macro Var的方式与do loop结合起来,可以实现批量的操作。。。获取文件夹list的作用,与获取文件名类似。。。

Get folder List Code

%let fdnm = B:SAS ;

%put &fdnm.;

filename xcl_fil pipe "dir &fdnm.*. /b";

data folder;

infile xcl_fil truncover;

input folder $char1000.;

put folder=;

run;

效果

Get file name

%let fdnm = E:Sta_pgmCSV ;

%put &fdnm.;

filename xcl_fil pipe "dir &fdnm.*.CSV /b";

data file;

infile xcl_fil truncover;

input file$char1000.;

put file=;

run;

请不写效果了,效果和上面的一样,只是这次换成了CSV

0 人点赞