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.

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
  • 1362 views
  • 0 likes
  • 2 in conversation