SAS中有没有办法使用proc sql打印标签中变量的值?
Is there a way in SAS to print the value of a variable in label using proc sql?
我有一种情况想将变量的值放在 SAS 的标签中。
示例:Total_Days 的中位数是 2。我想将此值放在 Days_Median_Split 标签中。中位数随着数据的变化而不断变化,所以我想自动化它。
- Phy_Activity Total_Days "Days_Median_Split: Number of Days with Median 2"
- 没有 0 0
- 没有 0 0
- 是 2 1
- 是 3 1
- 是 5 1
Sample Dataset
非常感谢!
* 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;
我有一种情况想将变量的值放在 SAS 的标签中。 示例:Total_Days 的中位数是 2。我想将此值放在 Days_Median_Split 标签中。中位数随着数据的变化而不断变化,所以我想自动化它。
- Phy_Activity Total_Days "Days_Median_Split: Number of Days with Median 2"
- 没有 0 0
- 没有 0 0
- 是 2 1
- 是 3 1
- 是 5 1
Sample Dataset
非常感谢!
* 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;