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 (July 1996, week 2)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Fri, 12 Jul 1996 12:23:12 PDT
Reply-To:   TWB2%Rates%FAR@GO50.COMP.PGE.COM
Sender:   "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU>
From:   TWB2%Rates%FAR@GO50.COMP.PGE.COM
Subject:   Re: Forcing SAS to output all categories of a variable, even
Comments:   To: anne@rti.org

Oh, how silly of me! I answered the wrong question again. The actual question is MUCH harder than the one I answered.

If the category '2' does not appear in the data, SAS does not notice that 1, 3 and 4 all appeared and insert a 2. Even worse, when the subsetting happened to exclude all category 4 observations, SAS does not notice that the categories include 1, 2 and 3 but not 4 and add 4, while not adding 5 which is not a valid category at all.

I suppose in the case of a subsetting WHERE, SAS could read the excluded observations to look for excluded categories, but it does not. If you use intermediate datasets and subsetting IF's, there is no way for SAS to check.

If you REALLY want the omitted lines inserted, you will have to tell SAS what lines to insert:

DATA FILLIN; DO CAT=1 TO 4; COUNT=0; PERCENT=0; OUTPUT; END; RUN;

PROC FREQ DATA=MYDATA.ALLMINE; WHERE CAT GT 2; TABLE CAT / NOPRINT OUT=WORK.DATA; RUN;

DATA REPORT; MERGE FILLIN DATA; BY CAT; RUN;

PROC PRINT DATA=REPORT; RUN;

The FILLIN dataset has all values of CAT, with obs reflecting a count of zero and a percent of zero for each category. The PROC FREQ generates an output dataset with non-missing values of COUNT and PERCENT for each value of CAT which satisfied the WHERE clause (or whatever subsetting you choose). The merge reads the FILLIN obs, with COUNT and PERCENT of zero, then overwrites them with the actual counts from the PROC FREQ output dataset. Where PROC FREQ did not generate an ob because the category did not exist, the values from FILLIN are retained in the final report.

See why I answered the easy question, instead?

Tim Berryhill - Contract Programmer and General Wizard TWB2@PGE.COM Frequently at Pacific Gas & Electric Co., San Francisco The correlation coefficient between their views and my postings is slightly less than 0 ----------------------[Reply - Original Message]----------------------

Sent by:"Theisen, Anne C." <anne@rti.org> Thanks for the suggestion. I tried it. This give me the percentage of "missing" data for the variable but won't show that a category is missing. For example, if RACE is suppose to have categories 1,2,3,4... and noone responded 2, (and there is missing data) this is what I get..

. 10 10% 1 25 25% 3 25 25% 4 40 40%

but category 2 is not shown as a 0 response at 0%. What do you suggest? Is it possible to show the "2" response option?

Thanks, Anne >

=====================================================================


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