【问题标题】:SAS macro doesn't work, but no errors or warningsSAS 宏不起作用,但没有错误或警告
【发布时间】:2017-08-06 08:13:02
【问题描述】:

我正在 SAS 大学构建 ROC 曲线,其中包含 100 个观察值,其中状态是自然状态 - 阳性或阴性测试,OD 是光密度。数据集称为datain。

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;

知道为什么这不起作用吗?

【问题讨论】:

    标签: sas sas-macro


    【解决方案1】:

    您是否尝试过实际调用您的宏?

    %roc(datain,&lowlim,&uplim,ninc=20);
    

    【讨论】:

    • 同意,但看起来应该是:%roc(datain, &lowlim, &uplim, ninc=20)
    • 是的,对不起,就是这样。我对此很陌生。如何转换此代码 proc gplot data=roc;绘制 tp_rate*fp_rate=cutoff;跑;使用 sgplot?
    • 感谢昆汀 - 已更新。 Lucija - 不知道你在问什么,我建议提出一个新问题,清楚地解释你想要达到的目标,以及你尝试过的......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2016-02-14
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多