BookmarkSubscribeRSS Feed
SAS_inquisitive
Lapis Lazuli | Level 10

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;

 

2 REPLIES 2
Tom
Super User Tom
Super User

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.

 

 

Kurt_Bremser
Super User

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.

Catch up on SAS Innovate 2026

Dive into keynotes, announcements and breakthroughs on demand.

Explore Now →
How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1759 views
  • 1 like
  • 3 in conversation