DATA Step, Macro, Functions and more

Using FILENAME in an 'if' statement

Reply
Contributor
Posts: 44

Using FILENAME in an 'if' statement

I am trying to set a file reference according to how a macro variable is set.  It appears as if SAS is ignoring my "if" blocks.  Here is some code:

%LET DRIVE=M;

LIBNAME USEFILE "C:\";

data _null_;

if ("&DRIVE" = 'M') then do;

   filename fileh 'this.txt';

   end;

if ("&DRIVE" = 'S') then do;

   filename fileh 'that.txt';

   end;

data test; infile fileh;

input test;

run;

When I try to run this the SAS code tries to open "that.txt".  Why?

PROC Star
Posts: 7,356

Re: Using FILENAME in an 'if' statement

I would guess that the lines are executed before the if statements are seen.  Will it work correctly if you wrap it in a macro and then change your if statements to %if statements?

Super User
Super User
Posts: 6,495

Re: Using FILENAME in an 'if' statement

Use the FILENAME() function instead of the global filename statement.

Ask a Question
Discussion stats
  • 2 replies
  • 202 views
  • 0 likes
  • 3 in conversation