sas动态调用在数据集中具有未知数量的字段的同义词

use*_*seR 3 sas

我有以下数据集

data parm2;
    input a b c d e;
    datalines;
1 2 3 4 A
;
run;
Run Code Online (Sandbox Code Playgroud)

问题1:我想要一组宏变量.假设我不知道字段的数量及其对应的字段名称.

问题2:字段数据类型不同.

期望的操作如下:

data _null_;
    set parm2;
call symput('a',a);
call symput('b',b);
call symput('c',c);
call symput('d',d);
call symput('e',e);
run;

%put &a;
Run Code Online (Sandbox Code Playgroud)

DWa*_*Wal 5

如果这是您的数据结构,我会转置:

proc transpose data=parm2 out=parmt;
  var _all_;
run;
Run Code Online (Sandbox Code Playgroud)

然后引用两列来创建所有宏变量及其对应的值:

data _null_;
  set parmt;
  call symput(_name_,col1);
run;
Run Code Online (Sandbox Code Playgroud)