簡體   English   中英

SAS多個數據集合並

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM