## proc transpose two counts dataset

Solved
Super Contributor
Posts: 301

# proc transpose two counts dataset

Hi everyone,

How can I transform this dataset A dataset using proc transpose in * dataset:

A dataset

agex            treat       Sex    COUNT    count2

13-24           drug         F       4         6

13-24           drug         M       2         6

13-24           PLA          F       2         6

13-24           PLA          M       4         6

less than 13    drug         F       2         4

less than 13    drug         M       2         4

less than 13    PLA          F       1         3

less than 13    PLA          M       2         3

* dataset

Obs    agex        drugF   drugM drugT     PLAF    PLAM plaT

1     13-24               4       2       6            2       4            6

2     less than 13      2       2       4            1       2            3

V

Accepted Solutions
Solution
‎04-02-2012 10:14 PM
Super Contributor
Posts: 1,636

## proc transpose two counts dataset

data have;

input agex \$20.  treat \$      Sex \$          COUNT    ;

cards;

13-24           drug         F                4

13-24           drug         M                2

13-24           PLA          F                2

13-24           PLA          M                4

less than 13    drug         F                2

less than 13    drug         M                2

less than 13    PLA          F                1

less than 13    PLA          M                2

;

run;

data temp;

set have;

length two \$8;

two=cats(treat,sex);

run;

proc transpose data=temp out=want(drop=_ ;

by agex;

var count;

id two;

run;

data want;

retain agex drugf drugm drugt plaf plam plat;

set want;

drugt=drugm+drugf;

plat=plam+plaf;

run;

proc print;run;

obs    agex            drugf    drugm    drugt    plaf    plam    plat

1     13-24               4        2        6        2       4       6

2     less than 13      2        2        4        1       2       3

All Replies
Solution
‎04-02-2012 10:14 PM
Super Contributor
Posts: 1,636

## proc transpose two counts dataset

data have;

input agex \$20.  treat \$      Sex \$          COUNT    ;

cards;

13-24           drug         F                4

13-24           drug         M                2

13-24           PLA          F                2

13-24           PLA          M                4

less than 13    drug         F                2

less than 13    drug         M                2

less than 13    PLA          F                1

less than 13    PLA          M                2

;

run;

data temp;

set have;

length two \$8;

two=cats(treat,sex);

run;

proc transpose data=temp out=want(drop=_ ;

by agex;

var count;

id two;

run;

data want;

retain agex drugf drugm drugt plaf plam plat;

set want;

drugt=drugm+drugf;

plat=plam+plaf;

run;

proc print;run;

obs    agex            drugf    drugm    drugt    plaf    plam    plat

1     13-24               4        2        6        2       4       6

2     less than 13      2        2        4        1       2       3

🔒 This topic is solved and locked.