DATA Step, Macro, Functions and more

Transform tables to match example

Posts: 72

Transform tables to match example

Dear Tom, I know this is not right place to post my query. But i need your help if you please. I am attaching files that i need to transform same like the sample file present in the attachment. Can you please help me with the procedure. I shall be thankful to you.

Super User
Super User
Posts: 8,108

Re: Transform tables to match example

Posted in reply to Jahanzaib

I "branched" this into a new topic.

Your data looks simple enough to use PROC TRANSPOSE.

Your BY variables should be FIRM and COUNTRY.

Your ID variable is VARIABLE.

And you can use _: to tell it to transform all of the _ variables.  In the output data set these variable names will be in the _NAME_ variable and the _LABEL_ value seems to have the actual YEAR value ('2005' for example is the label for the _005 variable).

BUT your FIRM/COUNTRY/VARIABLE combinations are NOT distinct.  For example FIRM='SUZA'.

Perhaps if you add another variable?

It seems to me that when VARIABLE='ROA' it is starting a new block of values.

Note that the values of VARIABLE could also be cleaned up to make them more consistent with each other and with your sample target table.

In Particular I found that some of the value have leading spaces.

So this little program let me at least transpose the data.

data fix_emerging;

set tmp3.emerging;

by firm country notsorted;


block+( or variable='ROA');


proc transpose data=fix_emerging out=want (rename=(_label_=year));

  by block firm country ;

  id variable ;

  var  _: ;


Posts: 72

Re: Transform tables to match example

many many Thanks dear TOM it is done.

Ask a Question
Discussion stats
  • 2 replies
  • 1 like
  • 2 in conversation