BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
desireatem
Pyrite | Level 9

I m having issues with this, I have to compute numerical integral using if else statement

Data sim;

Input A B C Beta P;

cards;

1 2  3  0.5  0

2 3  4  0.5  1

3 4.5 3  0.5 1

3 5 6  0.5   0

;

Run;

proc iml;

use sim;

read all var _NUM_ into DM;

close;

A = DM[,1]; B = DM[,2]; C = DM[,3];  Beta = DM[,4];  P = DM[,5];

n = nrow(DM);

start Func(x) global( Beta_i, C_i , P_i);

if P_i=0 then do;

   return(  exp(-x)*exp(2-x +Beta_i*C_i)#(cdf("Normal", x-2+Beta_i*C_i + A_i)-cdf("Normal", x-1+C_i + A_i)) );

end;

else do;

return(  exp(-x)*exp(4-x +Beta_i*C_i)#(cdf("Normal", x-4 +Beta_i*C_i + A_i)-cdf("Normal", x-1+C_i + A_i)) );

end;

finish;

answer = j(nrow(DM),1);

do i = 1 to nrow(DM);

   Beta_i = Beta; C_i = C;  P_i=P; /* set global variables */

   call quad(result, "Func", A || B,);

   answer = result;

end;

create kaplan1n var{A  B C Beta P Answer };

append;

quit;

1 ACCEPTED SOLUTION

Accepted Solutions
2 REPLIES 2
Rick_SAS
SAS Super FREQ

A_i is not defined in the module.

desireatem
Pyrite | Level 9

Thanks Rick:

Data sim;

Input A B C Beta P;

cards;

1 2  3  0.5  0

2 3  4  0.5  1

3 4.5 3  0.5 1

3 5 6  0.5   0

;

Run;

proc iml;

use sim;

read all var _NUM_ into DM;

close;

A = DM[,1]; B = DM[,2]; C = DM[,3];  Beta = DM[,4];  P = DM[,5];

n = nrow(DM);

start Func(x) global( Beta_i, C_i , A_i, P_i);

if P_i=0 then do;

   return(  exp(-x)*exp(2-x +Beta_i*C_i)#(cdf("Normal", x-2+Beta_i*C_i + A_i)-cdf("Normal", x-1+C_i + A_i)) );

end;

else do;

return(  exp(-x)*exp(4-x +Beta_i*C_i)#(cdf("Normal", x-4 +Beta_i*C_i + A_i)-cdf("Normal", x-1+C_i + A_i)) );

end;

finish;

answer = j(nrow(DM),1);

do i = 1 to nrow(DM);

   Beta_i = Beta; C_i = C; A_i=A; P_i=P; /* set global variables */

   call quad(result, "Func", A || B,);

   answer = result;

end;

create kaplan1n var{A  B C Beta P Answer };

append;

quit;

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 2 replies
  • 2412 views
  • 0 likes
  • 2 in conversation