0
我正在SAS大學建立ROC曲線,有100個觀測值,其中狀態是自然狀態 - 正或負測試,OD是光密度。數據集稱爲datain。SAS宏不起作用,但沒有錯誤或警告
data datain;
length State $ 1;
input State $ OD @@;
datalines;
P 0.745 N 0.790 P 1.440 P 0.790 (and so on...);
run;
%let lowlim=0.50;
%let uplim=1.50;
%macro roc(datain, lowlim, uplim, ninc=20);
options mtrace mprint;
data roc;
set &datain;
lowlim=&lowlim; uplim=&uplim; ninc=&ninc;
do i=1 to ninc+1;
cutoff=lowlim+(i-1)*((uplim-lowlim)/ninc);
if OD > cutoff then test="R"; else test="N";
output;
end;
drop i;
run;
proc print;
run;
%mend;
當我運行宏和PROC打印,沒有任何錯誤或警告。在LOG說:
OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
ODS HTML CLOSE;
&GRAPHTERM; ;*';*";*/;RUN;QUIT;
QUIT;RUN;
ODS HTML5 (ID=WEB) CLOSE;
ODS RTF (ID=WEB) CLOSE;
ODS PDF (ID=WEB) CLOSE;
FILENAME _GSFNAME;
DATA _NULL_;
RUN;
OPTIONS VALIDMEMNAME=COMPAT;
OPTIONS NOTES STIMER SOURCE SYNTAXCHECK;
任何想法,爲什麼這不工作?
同意,但看起來像調用應該是:'%ROC(數據輸入,及lowlim,與uplim,NINC = 20)' – Quentin
不錯,遺憾的是,就是這樣。我對此很新。如何轉換此代碼 proc gplot data = roc; plot tp_rate * fp_rate = cutoff; 跑; 使用sgplot? –
謝謝昆汀 - 更新。 Lucija--不確定你在問什麼,我建議提出一個新問題,明確說明你正在努力實現的目標,以及你所嘗試過的。 –