Date: Thu, 3 Sep 2009 11:19:48 -0500
Reply-To: "Data _null_;" <iebupdte@GMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Data _null_;" <iebupdte@GMAIL.COM>
Subject: Re: Simple TRANSPOSE or DATA step problem
In-Reply-To: <20080889.1251993360621.JavaMail.root@mswamui-valley.atl.sa.earthlink.net>
Content-Type: text/plain; charset=ISO-8859-1
Since you want 2 variables from _NAME_ comming out of transpose you
will need an extra datastep to create EYE and POSITION.
data have;
input SIN Age (Gender Glc FH Steroid)(:$1.) OD45 OS45 OD0
OS0 OD90 OS90;
cards;
1 38 M Y N N 15.6667 15.3333 17.3333 18.3333 17.0000 18.3333
2 71 F Y Y N 19.6667 17.0000 25.6667 17.0000 19.0000 16.0000
;;;;
run;
proc print;
run;
proc transpose out=need(rename=(col1=Pressure));
by sin--steroid;
var od:;
run;
data need;
set need;
length eye $2;
eye = _name_;
position = input(substr(_name_,3),f2.);
run;
proc print;
run;
You could also do a DATA STEP transpose that would be a one step
solution. Someone else will show you that.
On 9/3/09, Peter Flom <peterflomconsulting@mindspring.com> wrote:
> Hi again all
>
> I learn a little about TRANSPOSE, then I don't use it for a few months and forget what I learned. Thank goodness for this list!
>
> Here's the data I have
> Obs SIN Age Gender Glc FH Steroid OD45 OS45 OD0 OS0 OD90 OS90
>
> 1 1 38 M Y N N 15.6667 15.3333 17.3333 18.3333 17.0000 18.3333
> 2 2 71 F Y Y N 19.6667 17.0000 25.6667 17.0000 19.0000 16.0000
> etc
>
>
> Here's what I'd like
> Obs SIN Age Gender Glc FH Steroid Eye Position Pressure
> 1 1 38 M Y N N OD 45 15.667
> 1 1 38 M Y N N OS 45 15.333
> 1 1 38 M Y N N OD 0 17.333
> 1 1 38 M Y N N OS 0 18.333
> 1 1 38 M Y N N OD 90 17.000
> 1 1 38 M Y N N OS 90 16.000
>
> etc
>
> TIA as always
>
> Peter
>
>
>
>
>
>
> Peter L. Flom, PhD
> Statistical Consultant
> www DOT peterflomconsulting DOT com
> I write some at:http://www.associatedcontent.com/user/582880/peter_flom.html
> I trade books at http://www.bookmooch.com/
>
|