I want to create a database such as :
data seuils_60;
input seuil1;
datalines;
1080
;
Except that I would like 1080 not to be an actual number, but a value stocked in a macrovariable. But when I try
data seuils_60;
input seuil1;
datalines;
&seuil_60_14
;
I get an error, although I can %put my macrovariable (it exists).
What would be the best way around ?
data seuils_60;
seuill=&seuil_60_14 ;
run;
data seuils_60;
seuill=&seuil_60_14 ;
run;
SAS has a prohibition against macrovariables in datalines/cards statements.
Use the
varname1=&macvarnam1.;
varname2=&macvarnam2.;
...
varnameN=&macvarnamN.;
output;
method to get around that.
If need to poopulate more than one data row, and more than one variable per data row, you can assign and reference macro arrays like:
%do i = 1 %to &n.;
%do j = 1 %to &m.
varnam&j.=&&mvar&i._&j..;
%end;
%end;
where n and m are the rows and columns of the data you want to load respectively and your macro variables are named from mvar1_1 to mvar&n._&m.
Sorry? Where is the database in the question? From what I can see is you want to assign a bit of text - macro is only text - to a variable. So the question is why, as:
data want; seuil1=1060; run;
Seems to be the code you want. Without further information as to the why its hard to say, I mean what is
&seuil_60_14
Why is it created, why does it contain data?
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.