DATA Step, Macro, Functions and more

program execution

Reply
Regular Contributor
Posts: 234

program execution

I wonder how this program executes?

 

data want;
	set have1;
	by var1 var2;

	do n = 1 to nobs;
		do m = 1 to mobs;
			set have2 point = n nobs = nobs;
			set have3 point = m nobs = mobs;

			output;
		end;
	end;
run;

 

Super User
Super User
Posts: 6,502

Re: program execution

I would recommend making three datasets with just a few observations each and see for yourself.  Try putting a PUT statement before the OUTPUT statement. That is especially useful for looking at the values of M, N and _N_ which will not be in the WANT dataset.

 

 

Super User
Posts: 6,972

Re: program execution

This seems to do a complete cartesian join over all three datasets, in a very complicated and inefficient manner. Would need some test data to verify that.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Ask a Question
Discussion stats
  • 2 replies
  • 210 views
  • 1 like
  • 3 in conversation