LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (April 2007, week 3)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Mon, 16 Apr 2007 16:49:55 -0400
Reply-To:     Arthur Tabachneck <art297@NETSCAPE.NET>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         Arthur Tabachneck <art297@NETSCAPE.NET>
Subject:      Re: looking to create an array
Comments: To: alisontetler@YAHOO.COM

Alison,

Can you supply a data step with a sample of vmitem, along with what you would like that sample data to look like in all_merge?

Art -------- On Mon, 16 Apr 2007 13:32:30 -0700, alison <alisontetler@YAHOO.COM> wrote:

>i'm working on a program where i take a dataset that has an id (but in >present form can have multiples of same id value) and one other >variable with range 1-21 and transform it into format where i have id >(no duplicates) and dichotomous variables with yes/no responses for >all values in range of other variable (ex. id value1 value2 value3 - >- value21). i know that this can be accomplished easily using an >array, but am having trouble figuring it out. my code so far is >below: i am taking the main dataset, keeping the id and one other >variable, deleting where the other variable ne 1 then outputting into >a new dataset - doing this for all variable values - then merging them >back together so that i have complete information for each id on one >record. any suggestions? > >data bev1; set vmitem; keep vendingmachineid bev1; if bev1 ne 1 then >delete; run; >proc sort out=bev1a noduplicates; by vendingmachineid; run; >data bev2; set vmitem; keep vendingmachineid bev2; if bev2 ne 1 then >delete; run; proc sort out=bev2a noduplicates; by vendingmachineid; >run; >data bev3; set vmitem; keep vendingmachineid bev3; if bev3 ne 1 then >delete; run; proc sort out=bev3a noduplicates; by vendingmachineid; >run; >data snk1; set vmitem; keep vendingmachineid snk1; if snk1 ne 1 then >delete; run; proc sort out=snk1a noduplicates; by vendingmachineid; >run; >data snk2; set vmitem; keep vendingmachineid snk2; if snk2 ne 1 then >delete; run; proc sort out=snk2a noduplicates; by vendingmachineid; >run; >data anybev; set vmitem; keep vendingmachineid anybev; if anybev ne 1 >then delete; run; proc sort out=anybeva noduplicates; by >vendingmachineid; run; >data anysnack; set vmitem; keep vendingmachineid anysnack; if anysnack >ne 1 then delete; run; proc sort out=anysnacka noduplicates; by >vendingmachineid; run; > >data merge1; set students; keep vendingmachineid ; run; >proc sort; by vendingmachineid; run; >data merge2; merge merge1 (in=in1) bev1a; by vendingmachineid; run; >data merge3; merge merge2 (in=in1) bev2a; by vendingmachineid; run; >data merge4; merge merge3 (in=in1) bev3a; by vendingmachineid; run; >data merge5; merge merge4 (in=in1) snk1a; by vendingmachineid; run; >data merge6; merge merge5 (in=in1) snk2a; by vendingmachineid; run; >data merge7; merge merge6 (in=in1) anybeva; by vendingmachineid; run; >data merge8; merge merge7 (in=in1) anysnacka; by vendingmachineid; >run; >data all_merge; set merge8; run; proc sort; by vendingmachineid; run;


Back to: Top of message | Previous page | Main SAS-L page