Help using Base SAS procedures

create multiple columns into 1 row

Reply
Super Contributor
Posts: 401

create multiple columns into 1 row

Is there a way i can create multiple rows into 1 columns ?... example below:

HAVE:

Date 1        City1       City2    City3
2012.01       4              5         8

2012.02      12            10        5 

2012.03       5              3         1 

2012.04       9             2          1

WANT:

Date1        Rate       City

2012.01      4            City1

2012.02      12          City1

2012.03       5           City1

2012.04       9           City1

2012.01      5            City2

2012.02      10          City2

2012.03       3           City2

2012.04       2           City2

2012.01      8            City3

2012.02      5           City3

2012.03      1           City3

2012.04       1           City3

Thanks

PROC Star
Posts: 7,487

Re: create multiple columns into 1 row

You could use proc transpose.  One way would be:

proc transpose data=have out=want

  (rename=(_name_=city col1=rate));

  var city1-city3;

  by date1;

run;

Trusted Advisor
Posts: 1,137

Re: create multiple columns into 1 row

Alternatively by arrays,

data want;

    set have;

    array cits(3)$ ("city1" "city2" "city3");

    array cit(3) city1-city3;

    do i = 1 to 3;

    city=cits(i);

    rate=cit(i);

    output;

    end;

    keep date rate city;

run;

Thanks,

Jagadish

Thanks,
Jag
Ask a Question
Discussion stats
  • 2 replies
  • 153 views
  • 6 likes
  • 3 in conversation