I added if condition but it seems not applied.
if state= 3 then
do i = 1 to 4;
if a[2*i-1] NE 0 then
do;
b[4*i-3] = c[i] - a[(2*i-1)];
b[4*i-2] = b[4*i-3] / a[(2*i-1)];
end;
if a[2*i] NE 0 then
do;
b[4*i-1] = c[i] - a[2*i];
b[4*i] = b[4*i-1] / a[2*i];
end;
end;
Why?
What is this code in? It seems to me to be invalid SAS code. The if syntax is:
if <logic> then <result>;
Or for multiple statements:
if <logic> then do;
<results>;
end;
So in your code it should start:
if state=3 then do;
do i=1 to 4;
...;
end;
end;
As a tip for your questions:
- Post test data, in the form of a datastep in the post.
- Show what the output should look lke
- Explain any logic
A question, what are all those arrays for, are you sure they are all within bounds? I would guess that there are simpler methods to do this, but without information can't provide.
How do you know it's "not applied"? Show the unexpected results.
What is the ERROR/WARNING message?
What is this code in? It seems to me to be invalid SAS code. The if syntax is:
if <logic> then <result>;
Or for multiple statements:
if <logic> then do;
<results>;
end;
So in your code it should start:
if state=3 then do;
do i=1 to 4;
...;
end;
end;
As a tip for your questions:
- Post test data, in the form of a datastep in the post.
- Show what the output should look lke
- Explain any logic
A question, what are all those arrays for, are you sure they are all within bounds? I would guess that there are simpler methods to do this, but without information can't provide.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.