if lengthn(CMINDC)<=200 then SUPP_CMINDC=cats(CMINDC);
else do;
do i=1 to 200 until(^missing(SUPP_CMINDC));
if lengthn(ksubstr(CMINDC,1,i))<=200 and lengthn(ksubstr(CMINDC,1,i+1))>200 then do;
SUPP_CMINDC=ksubstr(CMINDC,1,i);
SUPP_CMINDC1=ksubstr(CMINDC,i+1);
end;
end;
end;
label SUPP_CMINDC='用药原因归类' SUPP_CMINDC1='用药原因归类';
drop CMINDC;
2.当截断变量后放在正域,超过部分放在SUPP中且变量字符在200-400内。
if length(RPRES)<=200 then FAORRES=RPRES;
else do;
do i=1 to 200 until(^missing(FAORRES));
if lengthn(ksubstr(RPRES,1,i))<=200 and lengthn(ksubstr(RPRES,1,i+1))>200 then do;
FAORRES=ksubstr(RPRES,1,i);
SUPP_FAORRES1=ksubstr(RPRES,i+1);
end;
end;
end;
label SUPP_FAORRES1='原始结果';
3.变量字符超过400。
%For(idx,in=0:4,do=%nrstr(
label SUPP_DVTERM&idx.="方案偏离报告名称";
if lengthn(DVTERM&idx.)<=200 then SUPP_DVTERM&idx.=DVTERM&idx.;
else do;
do i=1 to 200 until(^missing(SUPP_DVTERM&idx.));
if lengthn(ksubstr(DVTERM&idx.,1,i))<=200 and lengthn(ksubstr(DVTERM&idx.,1,i+1))>200 then do;
SUPP_DVTERM&idx.=ksubstr(DVTERM&idx.,1,i);
DVTERM%eval(&idx.+1)=ksubstr(DVTERM&idx.,i+1);
end;
end;
end;
));
rename SUPP_DVTERM0=DVTERM;