DATA Step, Macro, Functions and more

How to use macro values to judge and append the datasets

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 102
Accepted Solution

How to use macro values to judge and append the datasets

Hello SAS guys,

 

I import multiply datasets into SAS. I want my datasets group by monthly and cumulative. If I want my reports generated both monthly and cumulative, how do I code?

Here is the sample codes:

 

%let report=Cumulative;

filename indata pipe "dir &datadir. /b";

data file_list;
length fname$ 256.;
infile indata truncover; /* infile statement for file names */
input fname$ 256.; /* read the file names from the directory */
run;

Proc sql noprint;
create table filename as
select fname from file_list where fname contains ".txt";
select count(DISTINCT fname) into :num_files from filename;
select distinct fname into :filein1 - :filein%left(&num_files) from filename;
create table name as
select compress( scan(fname,1,"."),"&","i" )as fname from filename;
select compress(fname," 12345abced","kis")into :name1 - :name%left(&num_files)
from name;
quit;

%macro fileread;
%do j=1 %to &num_files;
proc import datafile="&datadir.\&&filein&j." out=&&name&j. dbms=csv replace;
getnames=yes;
datarow=2;
guessingrows=32767;
run;
%end;
%mend fileread;
%fileread;

 

/*Now I import three monthly data into SAS. */

%macro outdata;

%if &report="Cumulative" %then %do;

data cdata;

set data10 - data12;

run;

%end;

%else %do;

data cdata;

set data12;

run;

%end;

%mend;

%outdata;

 

But it seems that SAS ignore the condition: &report="Cumulative".

Any help is appreciated.

 

 

 

 


Accepted Solutions
Solution
‎01-11-2018 11:46 AM
PROC Star
Posts: 1,294

Re: How to use macro values to judge and append the datasets

you don't need double quotes  here %if &report="Cumulative" 

 

%if &report=Cumulative 

View solution in original post


All Replies
Solution
‎01-11-2018 11:46 AM
PROC Star
Posts: 1,294

Re: How to use macro values to judge and append the datasets

you don't need double quotes  here %if &report="Cumulative" 

 

%if &report=Cumulative 

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 78 views
  • 0 likes
  • 2 in conversation