1

我们可以通过 SAS SQL 过程创建宏变量,使用语法

select var into :mvar

但我想知道数据步骤中是否有相同的方法。

我有一个数据集。

A    B
===  ===
a1   b1
a2   b2
a3   b3

MA我可以使用以下语句创建一个宏变量。

proc sql noprint;
   select "'"||A||"'" into :MA separated by ","
   from dataset;
quit;

如何在数据步骤中做到这一点?

4

1 回答 1

7

首先,创建您的示例数据集:

data dataset;
infile datalines;
input A  $ B $;
datalines;
a1 b1
a2 b2
a3 b3
;
run;

下面的步骤几乎可以完成您的PROC SQL工作,CALL SYMPUT用于输出一个名为的宏变量MA

data _NULL_;
  retain amac;
  length amac $35;
  set dataset;
  if _N_ = 1 then amac=a; else amac=cats(amac,',',a);
  put amac=;
  call symputx('MA',amac);
 run;

 %put &MA;
于 2015-04-21T05:56:19.023 回答