从宏变量 SAS 创建数据集
Create data set from macro variable SAS
我有一个存储一串名字的宏变量,例如:
%let operation = add subtract divide multiply;
我想将宏中的每个元素(以观察形式出现)转置为数据集变量。所以数据集应该是这样的:
<obs> <operation>
<1> add
<2> subtract
<3> divide
<4> multiply
使用 SCAN() 函数。默认分隔符将适用于您的示例,否则您可以指定要使用的确切分隔符。
%let operation= add subtract divide multiply;
data want ;
length obs 8 operation ;
do obs=1 by 1 until (operation=' ');
operation=scan("&operation",obs);
if operation ne ' ' then output;
end;
run;
我还不够了解你有什么,你想要什么。这个例子是人为设计的,但可能会给你一些语法等方面的帮助。
%let operation = add subtract multiply divide;
data operation;
length &operation 8;
array operation[*] &operation (2 3 10 4);
put 'NOTE: ' (operation[*])(=);
run;
*data set of names;
proc transpose data=operation(obs=0) out=names name=operation;
var &operation;
run;
proc print;
run;
我有一个存储一串名字的宏变量,例如:
%let operation = add subtract divide multiply;
我想将宏中的每个元素(以观察形式出现)转置为数据集变量。所以数据集应该是这样的:
<obs> <operation>
<1> add
<2> subtract
<3> divide
<4> multiply
使用 SCAN() 函数。默认分隔符将适用于您的示例,否则您可以指定要使用的确切分隔符。
%let operation= add subtract divide multiply;
data want ;
length obs 8 operation ;
do obs=1 by 1 until (operation=' ');
operation=scan("&operation",obs);
if operation ne ' ' then output;
end;
run;
我还不够了解你有什么,你想要什么。这个例子是人为设计的,但可能会给你一些语法等方面的帮助。
%let operation = add subtract multiply divide;
data operation;
length &operation 8;
array operation[*] &operation (2 3 10 4);
put 'NOTE: ' (operation[*])(=);
run;
*data set of names;
proc transpose data=operation(obs=0) out=names name=operation;
var &operation;
run;
proc print;
run;