Help using Base SAS procedures

proc transpose two counts dataset

Accepted Solution Solved
Reply
Super Contributor
Posts: 301
Accepted Solution

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

          Thanks in advance.

V


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

proc transpose two counts dataset

how about:

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=_Smiley Happy ;

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

View solution in original post


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

proc transpose two counts dataset

how about:

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=_Smiley Happy ;

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.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 162 views
  • 0 likes
  • 2 in conversation