我一直在尝试重写几个在数据步骤中工作的if
语句,以在iml中生成一个新矩阵,但似乎不起作用:
data dd (drop = _TYPE_ _FREQ_);
set b ;
if _N_ =1 then set cc ;
if pred <= pred_max then pred_c = "p80 - max" ;
if pred <= pred_p80 then pred_c = "p60 - p80" ;
if pred <= pred_p60 then pred_c = "p40 - p60" ;
if pred <= pred_p40 then pred_c = "p20 - p40" ;
if pred <= pred_p20 then pred_c = "min - p20" ;
run ;
proc iml ;
use model1;
p={0,0.2,0.4,0.6,0.8,1};
call qntl(per ,predprob,p);
print per[rowname={"min" ,"0.2" ,"0.4" ,"0.6" ,"0.8", "max"}];
pred_c=j(nrow(predprob),1,.);
do i=1 to nrow(predprob);
do j=1 to nrow(predprob);
if predprob[i]<= per[6,]
then pred_c[j,i]={"max-p80"};
if predprob[i]<= per[5,]
then pred_c[j,i]={"p60-p80"};
if predprob[i]<= per[4,]
then pred_c[j,i]={"p40-p60"};
if predprob[i]<= per[3,]
then pred_c[j,i]={"p20-p40"};
if predprob[i]<= per[2,]
then pred_c[j,i]={"min-p20"};
end;
end; 打印pred_c;
我该如何解决这个问题?