[英]SAS-multiple datasets merging
我想通過以下代碼合並幾個單獨的數據集。 但是,它將錯誤報告為: 我該如何解決這個問題?
%macro test(sourcelib=,from=);
proc sql noprint; /*read datasets in a library*/
create table mytables as
select *
from dictionary.tables
where libname = &sourcelib
order by memname ;
select count(memname)
into:obs
from mytables;
%let obs=&obs.;
select memname
into : memname1-:memname&obs.
from mytables;
quit;
data full;
set
%do i=1 %to &obs.;
&from.&&memname&i;
%end;
;
run;
%mend;
%test(sourcelib='RESULT',from=RESULT.);
您的%DO
循環在SET
語句的中間生成了額外的分號。
set
%do i=1 %to &obs.;
&from.&&memname&i
%end;
;
另外,為什么要有兩個宏參數來傳遞相同的信息? 您應該能夠只傳遞libref。 還有,為什么要做那么多的宏變量呢?
%macro test(sourcelib=);
%local memlist ;
proc sql noprint;
select catx('.',libname,memname) into :memlist separated by ' '
from dictionary.tables
where libname = %upcase("&sourcelib")
order by 1
;
quit;
data full;
set &memlist ;
run;
%mend;
%test(sourcelib=ReSulT);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.