- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
This is the first time I write a code with macro and I get stucked with seemingly very easy step.
%macro readdata(yrmo=);
data &yrmo;
infile 'C:\Users\XXX\&yrmo';
input cusip $ 1-8 name $ 9-40 date issue_date maturity_date trader_matrix $ flat_prc acc_int coupon yield
duration amount_out Moody_rat SP_rat callability $ call_prc putability $ put_prc ret ind_code
Fitch_rat index_flag convexity Duff_Phelps;
run;
%mend;
%readdata(yrmo = Y0173);
This code gives me an error message.
ERROR: Physical file does not exist, C:\XXX\&yrmo.
OK, the file actually exists and if I replace &yrmo with Y0173, the code works fine.
How should I get &yrmo automatically replaced by macro?
Any advice will be appreciated. Thank you!
Yosh
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
The file name in your infile statement has to be surrounded by double not single quotes. Otherwise, the macro variable won't resolve.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
The file name in your infile statement has to be surrounded by double not single quotes. Otherwise, the macro variable won't resolve.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
@art297Does the same work accessing/importing a URL? I want to import a table from a url that has dynamic characters.
The code I have below is not working.
%let var1=2017;
%let var2='NC'; %let var9='Cary'; /
filename myfile url "http://aa.usno.navy.mil/cgi-bin/aa_rstablew.pl?ID=AA&year=&var1&task=0&state=&var2&place=&var9" lrecl=32767;
here is the original url.
filename myfile url "http://aa.usno.navy.mil/cgi-bin/aa_rstablew.pl?ID=AA&year=2017&task=0&state=NC&place=Cary" lrecl=32767;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
%let var2=NC; %let var9=Cary;