【发布时间】:2022-07-08 00:11:07
【问题描述】:
我是 SAS 新手,我想为每个随机数值向量生成图。 因此,我用宏包装了我的 proc iml,并尝试在调用宏 generate_scatter_plot 之前调用它。但我每次迭代都得到相同的点数。
有人可以解释一下 SAS 的正确方法是什么。
%MACRO generate_random_points();
proc iml;
N = 6;
rands = j(N,1);
call randgen(rands, 'Uniform'); /* SAS/IML 12.1 */
submit rands;
data my_data;
input x y @@;
datalines;
&rands
;
run;
endsubmit;
%MEND;
%MACRO generate_scatter_plot();
/* call execute('%generate_random_points();'); */
proc sgplot data=my_data;
scatter x=x y=y;
run;
%MEND;
data _null_;
do i = 1 to 20;
call execute('%generate_scatter_plot();');
end;
run;
我发现 SAS 与其他语言不同。
提前感谢所有愿意提供帮助的人!
【问题讨论】:
-
不确定是否需要带有 IML 的宏代码,因为它有自己的循环编码结构。你为什么要尝试生成文本字符串?如果您需要随机数,只需将它们直接生成到数据集或 IML 矩阵中。