SAS 中有没有办法使用 proc sql 打印标签中变量的值?



我有一种情况,我想将变量的值放在 SAS 的标签中。 示例:Total_Days的中位数为 2。我想把这个值放在Days_Median_Split标签中。中位数随着数据的变化而不断变化,所以我想自动化它。

  • Phy_Activity Total_Days "Days_Median_Split:中位数为 2 的天数"
  • 否 0 0
  • 否 0 0
  • 是 2 1
  • 是 3 1
  • 是 5 1

示例数据集

非常感谢!

* step 1 create data;
data have;
input Phy_Activity $ Total_Days Days_Median_Split;
datalines;
No 0 0
No 0 0
Yes 2 1
Yes 3 1 
Yes 5 1
run;
*step 2 sort data on Total_days;
proc sort data = have;
by Total_days;
run;
*step 3 get count of obs;
proc sql noprint;
select count(*) into: cnt
from have;quit;
* step 4 calulate median;
%let median = %sysevalf(&cnt/2 + .5);

*step 5 get median obsevation;
proc sql noprint;
select Total_days into: medianValue
from have
where monotonic()=&median;quit;
*step 6 create label;
data have;
set have;
label Days_Median_split = 'Days_Median_split: Number of Days with Median '  
%trim(&medianValue);
run;

最新更新