Date: Fri, 12 Oct 2001 13:50:50 -0700
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "David L. Cassell" <Cassell.David@EPAMAIL.EPA.GOV>
Subject: Re: PROC UNIVARIATE
Content-type: text/plain; charset=us-ascii
Rich wrote [in part]:
> I need to find the maximum value of a variable within a certain class
> of another variable. . . . . .
> The code works but I keep getting the following WARNING message in the
> LOG file. As a result I need to clean the LOG window from time to time
> in order to keep the program running.
> WARNING: The range of variable TERMTIME is too small relative to its
> mean, numerical inaccuracies may occur. Recode if possible.
Well, it's hard to give you an optimal plan when you haven't said why
doing this. But if you are doing it so often that you are filling up
window, then you're probably not doing the best approach.
If you need multiple maxima of TERMTIME by PHASE, then perhaps you
 not use PROC UNIVARIATE at all, but something a little faster like
 do all the maxima at once, using a BY PHASE; statement in the PROC
and save all
the results in a new dataset;
 then you can access the outputted dataset as needed, perhaps merging
your original dataset to get all maxima at once, or using the
dataset of maxima
as a table lookup.
And finally, you really ought to think about why your values are so
identical within each value of PHASE. Are they supposed to be that way?
then is there any point in pulling out the max within a value of PHASE
if they all
look to be about the same value?
David Cassell, CSC
Senior computing specialist