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.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

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

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