BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
NatashaLE
Calcite | Level 5

Hello,

 

I am using SAS Enterprse MIner 13.1 and am working inside of a SAS Code Node. I have a piece of code that I would like to apply repeatedly to different tables.

 

Example:

 

I have multiple tables (there could be a different number of these tables each time my code is ran) they are named Work_1, Work_2, Work_3, etc. They all have the same number of columns with the same names. My final goal is a table with the output of every SurveySelect statement (sample_HALT_1  UNION ALL sample_HALT_2, etc.) .

 

The process that I would like to perform on each of these tables is:

 

proc means data=Work._1 noprint;
var Diff_MinSS_IndSS;
output out=sample_HALT_1 mean=ha_mean;
run;
data _null_;
set sample_HALT_1;
call symputx('SS_HALT', ha_mean);
run;
%put macro variable SS_HALT: &SS_HALT;


PROC SURVEYSELECT DATA=WORK._1 OUT=sample_HALT_1 METHOD=SRS
  Sampsize= &SS_HALT ;
  RUN;

 

 

Any help would be greatly appreciated!

 

Thanks,

Natasha

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

1. No macros required, use BY GROUP processing. 

2.

data work_all;

set work_: indsname=source;

dsn = source;

run;

 

Then in your next steps add a BY statement using the DSN variable. 

 

For sample size you can provide the dataset instead of a macro variable so the output from proc means can feed directly into SURVEYSELECT. You may want to round the numbers to a whole number. 

 

 

View solution in original post

2 REPLIES 2
Reeza
Super User

1. No macros required, use BY GROUP processing. 

2.

data work_all;

set work_: indsname=source;

dsn = source;

run;

 

Then in your next steps add a BY statement using the DSN variable. 

 

For sample size you can provide the dataset instead of a macro variable so the output from proc means can feed directly into SURVEYSELECT. You may want to round the numbers to a whole number. 

 

 

NatashaLE
Calcite | Level 5

Thank you so much for your response! This suggestion allowed me to greatly simplify the process I was building.

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 2 replies
  • 782 views
  • 0 likes
  • 2 in conversation