我有数据集,其中包含每次观察购买特定产品的概率。这是一个例子:
DATA probabilities;
INPUT id P_prod1 P_prod2 P_prod3 ;
DATALINES;
1 0.02 0.5 0.32
2 0.6 0.08 0.12
3 0.8 0.34 0.001
;
我需要计算每个产品的中位数。我是这样做的:
%macro get_median (product);
proc means data=probabilities median;
var &product ;
output out=median_data (drop=_type _freq_) median=median;
run;
%mend;
此时我可以通过调用获得每个产品的中位数
%get_median(P_product1);
现在,我要做的最后一件事是将中位数的数字结果分配给宏变量。我对如何做到这一点的最佳猜测是:
%let med_P_prod1=%get_median(P_prod1);
但不幸的是,这不起作用。
有人可以帮忙吗?
干杯!