BookmarkSubscribeRSS Feed
SAS83
Fluorite | Level 6
Data x;
input num;
cards;
1
2
3
4
;
Run;

I want the following output :

%put =&y;

OUTPUT:

y=1,2,3,4

(Using ONLY with SAS Macro Statements)
2 REPLIES 2
SPR
Quartz | Level 8 SPR
Quartz | Level 8
Hello SAS83,

What do you mean "Using ONLY with SAS Macro Statements"?

The easiest and straitforward way to do it is this:
[pre]proc SQL;
select num into :y separated "," from x
;quit;
%put y=&y;
[/pre]
"Using ONLY with SAS Macro Statements" approach results in
[pre]%macro a;
proc SQL noprint;
select COUNT(*) into :n from x
;quit;
proc transpose data=x out=t prefix=c;
run;
%do i=1 %to &n;
proc SQL noprint;
select c&i into :c&i from t
;quit;
%end;
%let y=%TRIM(&c1),%TRIM(&c2),%TRIM(&c3),%TRIM(&c4);
%put y=&y;
%mend;
%a[/pre]
Is this what you need?
Sincerely,
SPR
SAS83
Fluorite | Level 6
Perfect !! Thanks SPR.

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1135 views
  • 0 likes
  • 2 in conversation