Есть ли способ в SAS напечатать значение переменной в метке с помощью proc sql? - PullRequest
0 голосов
/ 11 октября 2018

У меня есть ситуация, когда я хотел бы поместить значение переменной в метку в 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

Образец набора данных

Большое спасибо!

1 Ответ

0 голосов
/ 12 октября 2018
* 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;
...