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 (February 2006, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Wed, 22 Feb 2006 04:31:14 -0800
Reply-To:   TK <Tony.Kelleher@CSO.IE>
Sender:   "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:   TK <Tony.Kelleher@CSO.IE>
Organization:   http://groups.google.com
Subject:   Re: Merge
Comments:   To: sas-l@uga.edu
In-Reply-To:   <1140575112.784380.264990@z14g2000cwz.googlegroups.com>
Content-Type:   text/plain; charset="iso-8859-1"

How about a DATA step merge as follows:

data cctr; input cctr $ date date9. count; format date date9.; cards; 1 1jan2006 10 1 4jan2006 8 2 1jan2006 5 2 2jan2006 2 2 3jan2006 6 3 4jan2006 9 3 5jan2006 7 ; run;

proc sort data=cctr nodupkey out=temp (keep=cctr); by cctr; run;

data alldays1; set temp; do date = '01Jan2006'd to '05Jan2006'd; dayname = LEFT(put(date, downame.)); IF dayname='Sunday' then holiday='Y'; else holiday='N'; format date date9.; output; end; run;

proc sort data=alldays1; by cctr date; run; proc sort data=cctr; by cctr date; run;

data table; merge alldays1 (in=a) cctr (in=b); by cctr date; if a; if count =. then count=0; run;

A PROC PRINT yields the following output:

Obs cctr date dayname holiday count

1 1 01JAN2006 Sunday Y 10 2 1 02JAN2006 Monday N 0 3 1 03JAN2006 Tuesday N 0 4 1 04JAN2006 Wednesday N 8 5 1 05JAN2006 Thursday N 0 6 2 01JAN2006 Sunday Y 5 7 2 02JAN2006 Monday N 2 8 2 03JAN2006 Tuesday N 6 9 2 04JAN2006 Wednesday N 0 10 2 05JAN2006 Thursday N 0 11 3 01JAN2006 Sunday Y 0 12 3 02JAN2006 Monday N 0 13 3 03JAN2006 Tuesday N 0 14 3 04JAN2006 Wednesday N 9 15 3 05JAN2006 Thursday N 7


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