BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
echoli
Obsidian | Level 7

Hi All,

 

I have an output like below:

group

Coefficient

pvalue

Toddler

0.5

0.003

Young

0.7

0.005

Child

0.6

0.21

 

I want to transpose the ouput like this:

Toddler_Coeff

Toddler_Pvalue

Young_Coeff

Young_Pvalue

Child_Coeff

Child_Pvalue

0.5

0.003

0.7

0.005

0.6

0.21

 

But when I use proc transpose, the output like this:

 

Toddler

Young

Child

Coefficient

0.5

0.7

0.6

pvalue

0.003

0.005

0.21

 

here is my part code:

 

proc transpose data=final_1 out=final_1 ;
var coefficient pvalue;
id group;
run;

 

Any way to  help?

Thanks,

C

1 ACCEPTED SOLUTION

Accepted Solutions
Tom
Super User Tom
Super User

Use two steps.

proc sort data=have; by group ; run;
proc transpose data=have out=middle ;
 by group;
 var Coefficient pvalue ;
run;
proc transpose data=middle out=want delimiter=_;
  id group _name_;
  var col1;
run;

View solution in original post

5 REPLIES 5
Astounding
PROC Star

PROC TRANSPOSE could do something like that.  It would take a few steps, and generate different names (such as Coeff_Young instead of Young_Coeff).

 

For such a small data set, I would suggest coding it yourself.  For example:

 

data want;

do until (done);

   set have end=done;

   if group='Toddler' then do;  Toddler_Coeff = coefficient; Toddler_Pvalue = pvalue; end;

   else if group='Young' then do;  Young_Coeff=coefficient; Young_Pvalue = pvalue; end;

   else do;  Child_Coeff = coefficient; Child_Pvalue = pvalue; end;

end;

drop group coefficient pvalue;

run;

echoli
Obsidian | Level 7

Thanks, that helps!

Tom
Super User Tom
Super User

Use two steps.

proc sort data=have; by group ; run;
proc transpose data=have out=middle ;
 by group;
 var Coefficient pvalue ;
run;
proc transpose data=middle out=want delimiter=_;
  id group _name_;
  var col1;
run;
echoli
Obsidian | Level 7

Thanks, that really helps!!!

Astounding
PROC Star

Coincidence?  I actually had occasion to use this technique today.  Made me look like a magician.  Awesome!

How to Concatenate Values

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.

SAS Training: Just a Click Away

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

Browse our catalog!

Discussion stats
  • 5 replies
  • 1684 views
  • 1 like
  • 3 in conversation