我公司刚刚与R切换到SAS,我将我的很多R代码里面到SAS。 我有在SAS动态地声明变量(宏变量)一个巨大的问题。
例如我的过程之一,需要采取一列的平均值,然后在很多步骤应用它在整个代码。
%let numm =0;
我曾尝试以下我numm变量,但两种方法不工作,我似乎无法在网上找到任何东西。
PROC MEANS DATA = ASSGN3.COMPLETE mean;
#does not work
&numm = VAR MNGPAY;
run;
Proc SQL;
#does not work
&numm =(Select avg(Payment) from CORP.INV);
quit;
我会强烈建议购买一本书上的SAS或SAS公司培训采取一类。 SAS编程II是一个很好的起点(如果你还没有设定任何其他编程我,但这并不听起来像的情况下)。 你的代码表明你需要它。 距离R.一个完整的模式转变
这就是说,试试这个:
proc sql noprint;
select mean(payment) into :numm from corp.inv;
quit;
%put The mean is: &numm;
这里的PROC汇总/数据步相当于:
proc summary data = corp.inv;
var payment;
output out = inv_summary mean=;
run;
data _null_;
set inv_summary;
call symput('numm',payment);
run;
%put The mean is: &numm;
PROC SQL是一个更紧凑的方法,如果你只是想要一个简单的算术平均值,但如果你需要更复杂的统计是有意义的使用PROC总结。