BookmarkSubscribeRSS Feed
Ronein
Onyx | Level 15

Hello

Data set QQQ doesn't exist.

Why the following 2 codes give different results.

In way1 nothing happened (It is correct because data set QQQ doesnt exists)

In way2 a data set wanted is created with following information

Ronein_0-1634538266495.png

 

 

/****Way1***/
%MACRO if_exists_a;
%if %sysfunc(exist(QQQ)) %then %do;
Data wanted;
SET QQQ;
Run;
%end; 
%MEND;
%if_exists_a;


/***Way2***/
%MACRO if_exists_b;
%if %sysfunc(exist(QQQ)) %then %do;
QQQ;
%end; 
%MEND;
Data wanted;
set %if_exists_b;
Run;
3 REPLIES 3
ChrisNZ
Tourmaline | Level 20

As usual, the answer is in the log.

Have you looked?

yabwon
Amethyst | Level 16

At @ChrisNZ wrote, see the log. And probably, the best way to see the reason why it "works as coded" would be to run it in a new fresh SAS session:

1
2
3    /***Way2***/
4    %MACRO if_exists_b;
5    %if %sysfunc(exist(QQQ)) %then %do;
6    QQQ;
7    %end;
8    %MEND;
9    Data wanted;
10   set %if_exists_b;
ERROR: There is not a default input data set (_LAST_ is _NULL_).
11   Run;

Bart

_______________
Polish SAS Users Group: www.polsug.com and communities.sas.com/polsug

"SAS Packages: the way to share" at SGF2020 Proceedings (the latest version), GitHub Repository, and YouTube Video.
Hands-on-Workshop: "Share your code with SAS Packages"
"My First SAS Package: A How-To" at SGF2021 Proceedings

SAS Ballot Ideas: one: SPF in SAS, two, and three
SAS Documentation



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
  • 3 replies
  • 998 views
  • 1 like
  • 4 in conversation