BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
animesh123
Obsidian | Level 7


%macro carmake(Make= , Models=);
data cars;
set sashelp.cars;
where Make in (&make)and Model in (&models);
run;
%mend;

%carmake(Make= "Acura" "Audi" "BMW" "Hyundai", Models= "SUV" "Sedan");

1 ACCEPTED SOLUTION

Accepted Solutions
ballardw
Super User

Last time I looked at the SASHELP.CARS data set the variable TYPE had values like "SUV" and "Sedan".

 

Model has stuff like "RSX Type S 2dr".

So expect 0 observations in the result using Model that way.

View solution in original post

4 REPLIES 4
sbxkoenk
SAS Super FREQ

Not executing? Why do you say so?

 

If I submit, I get a dataset with zero observations in return!

So, it works !

 

Koen

ballardw
Super User

Last time I looked at the SASHELP.CARS data set the variable TYPE had values like "SUV" and "Sedan".

 

Model has stuff like "RSX Type S 2dr".

So expect 0 observations in the result using Model that way.

animesh123
Obsidian | Level 7

Thaks for help my bad I have fixed the issue 

%macro carmake(Make= , Types=);
data cars;
set sashelp.cars;
where Make in (&make)and Type in (&Types);
run;
%mend;

%carmake(Make= "Acura" "Audi" "BMW" "Hyundai", Types= "SUV" "Sedan");

PaigeMiller
Diamond | Level 26

Part of the problem is that you did not follow the general recommended advice, to first create code that works properly without macro variables and without macros. Had you done that, perhaps you would have figured out the problem, and then your macro would work properly.

 

But without macro variables and without macros, your code is this

data cars;
set sashelp.cars;
where Make in ( "Acura" "Audi" "BMW" "Hyundai") and Model in ("SUV" "Sedan");
run;

 

 

which doesn't work the way you want either. It returns an empty data set.

 

So please follow the above very good advice. You need to first make this code work without macros and without macro variables, and then you should be able to make your macro work properly.

--
Paige Miller

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 4 replies
  • 1018 views
  • 0 likes
  • 4 in conversation