| Date: | Thu, 25 Jun 2009 18:09:45 -0400 |
| Reply-To: | Mark Miller <mdhmiller@GMAIL.COM> |
| Sender: | "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU> |
| From: | Mark Miller <mdhmiller@GMAIL.COM> |
| Subject: | Re: transpose help |
|
| In-Reply-To: | <fb41cb00-1545-4976-8bc3-45948ab42f40@q37g2000vbi.googlegroups.com> |
| Content-Type: | text/plain; charset=ISO-8859-1 |
Kasa,
It's not really a transpose since you're just merging data from two rows.
The following code is not elegant, but it does the job.
DATA albset (keep = id visit val unit rename=(val=alb unit=albunit) )
altset (keep = id visit val unit rename=(val=alt unit=altunit) )
;;;;
Length ID 4 Visit 4 Test $3 Val 8 Unit $3 ;
Input id visit test $ val unit $ ;
IF test='alb' then output albset; else output altset;
datalines;
101 1 alb 4.8 gms
101 1 alt 14 kgs
101 2 alb 5.4 gms
101 2 alt 17 kgs
;;;;;;;;;;
proc sort data=albset; by id visit; run;
proc sort data=altset; by id visit; run;
DATA visjoin; Merge albset altset; by id visit; run;
options nocenter;
proc print data=visjoin; run;
... Mark Miller
On Thu, Jun 25, 2009 at 5:21 PM, kasa <venkatrkasa@gmail.com> wrote:
> Hi,
>
> I Have the following data
> id visit test val unit
> 101 1 alb 4.8 gms
> 101 1 alt 14 kgs
> 101 2 alb 5.4 gms
> 101 2 alt 17 kgs
>
> I need to transpose data as in needed data.
> needed
> id visit alb albunit alt altunit
> 101 1 4.8 gms 14 kgs
> 101 2 5.4 gms 17 kgs
>
> Any suggestions highly appreciated.
>
> Thanks,
>
|