要在每个观察值上设置相同的值,请使用RETAIN语句以防止SAS在开始下一次数据步骤迭代时重置该值。
data want; set have; if _n_=1 then myvar = ranuni(0) ; retain myvar; run;
要在宏代码中使用函数,您需要使用%SYSFUNC()宏函数。
%let mvar = %sysfunc(ranuni(0)); data want; set have; retain myvar &mvar ; run;
使用 %sysfunc 编码生成一个固定的随机数 DATA 步。
%sysfunc
DATA
data data; set data; want = %sysfunc(ranuni(0)); run;
这是一个 SQL 使用相同的版本进行比较:
SQL
proc sql; alter table have add want num; update have set want=%sysfunc(ranuni(0)); quit;