origin file
group weight01 weight02 weight03
A 1 2 3
A 4 5 6
B 7 8 9
B 6 5 4
I woul like to
group weight
A 1
A 4
B 7
B 6
A 2
A 5
B 8
B 5
A 3
A 6
B 9
B 4
I think I find the answer.
it is folowing logic
proc sql;
create table allvars as
select var1 from dataset
union
select var2 from dataset
union
select var3 from dataset;
quit;
@miris wrote:
I think I find the answer.
it is folowing logic
proc sql; create table allvars as select var1 from dataset union select var2 from dataset union select var3 from dataset; quit;
Correct version (giving exactly the output you initially posted):
proc sql;
create table allvars as
select group, weight01 as weight from have
union all
select group, weight02 as weight from have
union all
select group, weight03 as weight from have;
quit;
Explicit method in a data step:
data want;
set have;
array weights {*} weight01-weight03;
do i = 1 to dim(weights);
weight = weights{i};
output;
end;
keep group weight;
run;
Or simply:
data want;
set have (rename=(weight01=weight))
have (rename=(weight02=weight))
have (rename=(weight03=weight));
run;
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!
Get started using SAS Studio to write, run and debug your SAS programs.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.