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)
;
That's a custom user written macro, so you're best off contacting the author:
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)
;
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.
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.
Ready to level-up your skills? Choose your own adventure.