🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 11-28-2017 03:06 PM
(10487 views)
Hi forum,
Is it possible to pass multiple values to a macro variable created in call symput.
Data sample;
Infile data lines;
Input name $;
Data lines;
John
Mark
Carl
;
Data _null_;
Set sample;
Call symput(name1,name);
Run;
How can I assign the each data step values separately to macro variable and use it in my code?
Is it possible to pass multiple values to a macro variable created in call symput.
Data sample;
Infile data lines;
Input name $;
Data lines;
John
Mark
Carl
;
Data _null_;
Set sample;
Call symput(name1,name);
Run;
How can I assign the each data step values separately to macro variable and use it in my code?
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
This worked.thanks a lot.
4 REPLIES 4
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Are you trying to create a single macro variable or many here? Personally, I find SQL easier to use in these cases.
Multiple macro variables:
Proc sql noprint;
Select name into : name1-
From sashelp.class;
Quit;%put &name1.;%put &name19.;
Single macro variable, delimited by space:
Proc sql noprint;
Select name into :name_list separated by “ “
From sashelp.class;
Quit;%put &name_list;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
The following datastep creates a single macro variable for each record in your set and a variable that has the count.
Data _null_; Set sample; mvarname= catt('name',_n_); Call symputx(mvarname,name); call symputx('numnames',_n_); Run;
Old school, as in SAS 6. I would go with @Reeza's Proc SQL most of the time these days.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
This worked.thanks a lot.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
@Sharathr please choose someone else's answer as the solution, not your own.