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 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
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
  • 1047 views
  • 0 likes
  • 2 in conversation