DATA Step, Macro, Functions and more

SAS Help! How to run some calculations...

New Contributor
Posts: 3

SAS Help! How to run some calculations...

Hi, I need help running this!


data A; 

do y=1 to 300; 

if y < 5 and (1<x<6) then do; 

do i=1 to 7; 

do while (y-i>0);









So, I already have values for A(y) i.e. A(1), A(2),...A(300)


E.g. if y=4 then B= (1-A(4-1))*(1-A(4-2))*(1-A(4-3)) 






Super User
Super User
Posts: 7,392

Re: SAS Help! How to run some calculations...



Can you post some test data in the form of a datastep, and what the output should look like.  I am not following you at all.  Where does the variable X come into this, as its not described or set anywhere?  Why the output statement at the end, its not needed.  I assume a() is an array, what does the array define?  Test data really helps.

Super User
Posts: 6,928

Re: SAS Help! How to run some calculations...

First of all, your code yields a single error message:


ERROR 68-185: The function A is unknown, or cannot be accessed.


telling us that A() needs to be defined. Should it be an array, or is it a function defined elsewhere?

If it is a SAS array, it needs to be defined; it is also better to enclose the subscript in {}, making this more readable and clearer.


Once this is resolved, you will get a NOTE: about x being unitialized, which will cause the condition 1 < x < 6 to always be false, so your data step won't do anything at all (besides counting y to 300). B and i will stay missing in the dataset A.

So, where does x come from?


And what is the purpose of all this?



Maxims of Maximally Efficient SAS Programmers
Ask a Question
Discussion stats
  • 2 replies
  • 3 in conversation