Date: Mon, 16 Mar 1998 15:52:46 -0500
Reply-To: "Abelson, Robert" <RobertA@MOCR.OAPI.COM>
Sender: "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU>
From: "Abelson, Robert" <RobertA@MOCR.OAPI.COM>
Subject: Re: SUGGEST
Content-Type: text/plain
Girish,
First of all, on my platform (Windows NT) I needed a sort to get it to
work:
PROC SORT DATA=A;
BY ID CITY STATE;
RUN;
Then in your DATA _NULL_ step, you only want to put out ID and CITY if
FIRST.CITY is true:
DATA _NULL_;
SET A ;
BY ID CITY STATE;
FILE PRINT N=PS LL=LL NOTITLES LS=100;
RETAIN SUMA ACTIVE 0;
IF _N_ = 1 THEN PUT
// @1 'ID' @9 'CITY' @20 'STATE' @30 'ACTIVE' / ;
IF FIRST.CITY THEN PUT @1 ID @9 CITY @ ;
PUT @20 STATE @ ;
PUT @30 ACTIVE 4. @ / ;
IF FIRST.CITY AND FIRST.STATE THEN DO;
SUMA=0; END;
SUMA+ACTIVE;;
IF LAST.CITY & LAST.STATE THEN
PUT @ 15 'TOTAL' @30 SUMA 4. // ;
RUN;
I didn't bother with trying to get TOTAL to come out first, since it is
computed last. This can be done, but will be more complicated.
Bob Abelson
Otsuka America Pharmaceuticals
> -----Original Message-----
> From: girish.s.patel@CCMAIL.CENSUS.GOV
> [SMTP:girish.s.patel@CCMAIL.CENSUS.GOV]
> Sent: Monday, March 16, 1998 3:13 PM
> To: SAS-L@UGA.CC.UGA.EDU
> Subject: SUGGEST
>
> CAN ANYBODY SUGGEST " CHANGES " IN THE FOLLOWING CODE TO GET "
> DESIRED
> RESULTS " ?
>
> data a;
> Input ID $ city $ state $ active ;
> Cards;
> abc 1 F 4643
> abc 1 N 458
> abc 2 F 11
> abc 2 N 21
> XYZ 1 F 1431
> XYZ 1 N 458
> XYZ 2 F 31
> XYZ 2 N 41
>
> Run;
>
> DATA _NULL_;
> SET A ;
> BY ID CITY STATE;
> FILE PRINT N=PS LL=LL NOTITLES LS=100;
> RETAIN SUMA ACTIVE 0;
> IF _N_ = 1 THE PUT
> // @1 'ID' @9 'CITY' @20 'STATE' @30 'ACTIVE' / ;
> PUT @1 ID @ ;
> PUT @9 CITY @ ;
> PUT @20 STATE @ ;
> PUT @30 ACTIVE 4. @ / ;
> IF FIRST.CITY AND FIRST.STATE THEN DO;
> SUMA=0; END;
> SUMA+ACTIVE;;
> IF LAST.CITY & LAST.STATE THEN
> PUT @ 15 'TOTAL' @30 SUMA 4. // ;
> RUN;
>
> <<<<<<<<<<<< output >>>>>>>>>>>>
>
> ID CITY STATE ACTIVE
>
> abc 1 F 4643
> abc 1 N 458
> TOTAL 5101
>
> abc 2 F 11
> abc 2 N 21
> TOTAL 32
>
> XYZ 1 F 1431
> XYZ 1 N 458
> TOTAL 1889
>
> XYZ 2 F 31
> XYZ 2 N 41
> TOTAL 72
>
>
> <<<<<<<<< DESIRED OUTPUT >>>>>>>>>>>>>
>
> ID CITY STATE ACTIVE
>
> abc 1 TOTAL 5101
> F 4643
> N 458
>
> abc 2 TOTAL 32
> F 11
> N 21
>
> XYZ 1 TOTAL 1889
> F 1431
> N 458
>
> XYZ 2 TOTAL 72
> F 31
> N 41
|