マクロ プログラムを使用して、上位 10 パーセントの GPA の TotalGPA で並べ替えられたレコードを作成しようとしています。これは、60 単位時間以上で 130 単位時間未満の 24 の最高 GPA であることが判明しました。ここに私のコードがあります
%MACRO TopTen(outputtable, less, more);
PROC SQL;
select round(count(ID)/10) into :Data from OverallGPA;
quit;
%PUT &Data;
PROC SQL outobs=&Data.;
Create table &outputtable. as select *
from OverallGPA,OverallCreditHoursEarned
where &less.<OverallCreditHoursEarned<&more.
order by ID
;
quit;
%MEND;
%TopTen(Report3, 60, 130);
/* creates report of number of values in top ten percent */
PROC REPORT data=Report3;
run;
この Proc Report は現在、同じ ID、TotalGPA の列を出力していますが、OverallCreditHoursEarned は異なります。これを機能させるためのアイデアはありますか?Proc Rank を使用しましたが、マクロでは機能しないと思います。Proc ランク コードは以下のとおりです。
PROC RANK data=OverallGPA out=Report3Alt(where=(TopTenPercent<=24))
descending ties=Low;
var TotalGPA;
ranks TopTenPercent;
run;