Date: Sun, 26 Oct 2008 11:04:05 -0400
Reply-To: "Howard Schreier <hs AT dc-sug DOT org>"
<schreier.junk.mail@GMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Howard Schreier <hs AT dc-sug DOT org>"
<schreier.junk.mail@GMAIL.COM>
Subject: Re: Transpose Question
On Sun, 26 Oct 2008 10:07:03 -0400, Arthur Tabachneck <art297@NETSCAPE.NET>
wrote:
>Ricardo,
>
>There is probably a simpler way, but you could use something like the
>following:
>
>data have;
> input number model $ score $;
> cards;
>1 cla A
>2 cli B
>3 clu C
>4 cla D
>5 cli E
>6 clu F
>7 cla G
>8 cli H
>9 clu I
>10 cla J
>11 cli K
>12 clu L
>13 cla M
>14 cli N
>15 clu O
>16 cla P
>17 cli Q
>18 clu R
>;
>
>data temp (drop=old_number);
> set have (rename=(number=old_number));
> if mod(old_number,3) eq 1 then number+1;
>run;
Or
data temp;
set have(drop = number);
number + _n_ = 1 or model < lag(model);
run;
This will adapt automatically to more or fewer models.
>
>proc transpose data=temp out=want
> (drop=_name_
> rename=(col1=cla col2=cli col3=clu));
> var score;
> by number;
>run;
Or
proc transpose data=temp out=want (drop=_name_);
by number;
id model;
var score;
run;
>
>HTH,
>Art
>----------
>On Sun, 26 Oct 2008 09:30:44 -0400, Ricardo Silva <Ricardo.Silva@SAS.COM>
>wrote:
>
>>Hi,
>>
>>I have a table as follow:
>>
>>number model score
>>1 cla A
>>2 cli B
>>3 clu C
>>4 cla D
>>5 cli E
>>6 clu F
>>7 cla G
>>8 cli H
>>9 clu I
>>10 cla J
>>11 cli K
>>12 clu L
>>13 cla M
>>14 cli N
>>15 clu O
>>16 cla P
>>17 cli Q
>>18 clu R
>>
>>And I would like to transpose it to obtain:
>>
>>number cla cli clu
>>1 A B C
>>2 D E F
>>3 G H I
>>4 J K L
>>5 M N O
>>6 P Q R
>>
>>How can I do this?
>>Thanks, Rick