BookmarkSubscribeRSS Feed
nm2542
Calcite | Level 5

When using the %MAKEWIDE macro code to transform a long form dataset into a wide form dataset, is there a macro code to retain the variable labels?

 

I’ve searched for codes but I can’t find any. When I use %MAKEWIDE command to transform long form dataset into wide form data set, the labels always disappear. Below is the code I use to sort and merge datasets into one complete wide form dataset. Is there a code I can add to ensure the variable labels carryover into the wide form dataset?

 

 

proc sort data=; by folio visit; run;

proc sort data=; by folio visit; run;

 

 

data /*data*/

            merge /* a b c...*/;

            by folio visit;

run;

 

 

/********************* TRANSFORM ******************************/

%include "J: SAS commands\transpose to wide_macro code.sas";

proc contents data=; run;

proc sort data=; by folio; run;

%MAKEWIDE (

DATA= data_old,

OUT=data_new,

ID=folio,

VAR=/*variables*/,

TIME=visit)

;

 

1 REPLY 1
Reeza
Super User

That's a custom user written macro, so you're best off contacting the author:

http://www.sascommunity.org/wiki/Transpose_data_with_macro_%25MAKEWIDE_and_%25MAKELONG_(based_on_Pro...)

 

Alternatively if you're using PROC TRANSPOSE you can use IDLABEL or you can try the macro here:

http://www.sascommunity.org/wiki/A_Better_Way_to_Flip_(Transpose)_a_SAS_Dataset

 


@nm2542 wrote:

When using the %MAKEWIDE macro code to transform a long form dataset into a wide form dataset, is there a macro code to retain the variable labels?

 

I’ve searched for codes but I can’t find any. When I use %MAKEWIDE command to transform long form dataset into wide form data set, the labels always disappear. Below is the code I use to sort and merge datasets into one complete wide form dataset. Is there a code I can add to ensure the variable labels carryover into the wide form dataset?

 

 

proc sort data=; by folio visit; run;

proc sort data=; by folio visit; run;

 

 

data /*data*/

            merge /* a b c...*/;

            by folio visit;

run;

 

 

/********************* TRANSFORM ******************************/

%include "J: SAS commands\transpose to wide_macro code.sas";

proc contents data=; run;

proc sort data=; by folio; run;

%MAKEWIDE (

DATA= data_old,

OUT=data_new,

ID=folio,

VAR=/*variables*/,

TIME=visit)

;

 


 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

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
  • 1 reply
  • 977 views
  • 0 likes
  • 2 in conversation