全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2682 8
2015-09-23
悬赏 50 个论坛币 未解决
大家好,我现在有300组csv数据,分别是:shanghai001-shanghai100, london001-london100,newyork001-newyork100;

我现在的导入code 如下:
复制代码
这个code 是管用的,但是我现在不想反复复制这个code 300次,我只是想知道如何用 macro 讲这300 组数据导入成相对应的300 组(我不想要一个大表,还只想要相对应的300组数据): sh001-sh100,ln001-ln100 和 ny001-ny100

谢谢大家。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-9-23 20:52:16
宏内做个循环就可以达到目的,

%macro input_data(innm,outnm);
%do i=1 %to 100;

data _null_;
if &i<10 then call symput("k","00"||"&i.");
else if &i>=10 and &i<100 then call symput("k","0"||"&i.");
else  call symput("k","&i.");
run;


data &outnm.&k.;                                   
infile  "H:\&innm.&k..csv"
delimiter   =   ',' DSD lrecl=32767 firstobs=2  ;                           
informat    Date_L_ DATE11. ;                              
informat    Time_L_ time18.3    ;
informat    Type    $10.    ;
format  Date_L_ DATE11. ;                              
format  Time_L_ time18.3    ;
format  Type    $10.    ;                                                           
input                                                                              
Date_L_                                         
Time_L_     
Type    $                                                                                          

;                                          
run;
%end;
%mend;
%input_data(shanghai,sh);%input_data(london,ld);%input_data(newyork,ny);
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-9-23 21:37:36
mutangchun_yu 发表于 2015-9-23 20:52
宏内做个循环就可以达到目的,

%macro input_data(innm,outnm);
谢谢你的回答,
还有一个小问题,比如说我的 shanghai数据只有99个,而london 和 newyork的数据都是100个。这里的话code也是不是也不用改,因为会自动读取到99。 是这样吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-9-24 21:10:06
mutangchun_yu 发表于 2015-9-23 20:52
宏内做个循环就可以达到目的,

%macro input_data(innm,outnm);
好像有错误唉。。。。

提示:physical file does not exist,


你确定 文件名没有错误吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-9-24 21:48:25
感觉data _null_; 下面是不是要加set 什么的???
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-9-25 00:14:03
mutangchun_yu 发表于 2015-9-23 20:52
宏内做个循环就可以达到目的,

%macro input_data(innm,outnm);
我尝试了 宏 没有错, 应该是里面的内循环有点问题。
我不太理解 i 所对应的 倒入文件的名字
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群