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.

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 1198 views
  • 1 like
  • 3 in conversation