Date: Wed, 23 Feb 2011 19:31:57 -0500
Reply-To: "Kirby, Ted" <ted.kirby@LEWIN.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Kirby, Ted" <ted.kirby@LEWIN.COM>
Subject: Re: MAX() function over character values
In-Reply-To: A<201102232249.p1NHqnqJ008702@willow.cc.uga.edu>
Content-Type: text/plain; charset="us-ascii"
However, it appears from the examples that the min and max operators can
take only two operands. Thus, some sort of looping structure would need
to be used if you have a list of values of which you wanted the min or
max.
-----Original Message-----
From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of
Paul Dorfman
Sent: Wednesday, February 23, 2011 5:49 PM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Re: MAX() function over character values
Art,
Here is one place:
http://support.sas.com/documentation/cdl/en/lrcon/62955/HTML/default/vie
wer.
htm#a000780367.htm
These have been around as long as I remember myself and SAS together.
They
are certainly described (with numerous usage examples) in Aster/Seidman
circa 1990.
Kind regards
------------
Paul Dorfman
Jax, FL
------------
On Wed, 23 Feb 2011 17:26:11 -0500, Arthur Tabachneck
<art297@ROGERS.COM>
wrote:
>Paul,
>
>That definitely works! Do you know if those operators are documented
>anywhere? I never even knew they existed.
>
>Art
>--------
>On Wed, 23 Feb 2011 16:57:28 -0500, Paul Dorfman
<sashole@BELLSOUTH.NET>
>wrote:
>
>>Yevgeniy,
>>
>>Use the MAX/MIN operators instead:
>>
>>s_max = s1 max s2 ;
>>s_min = s1 min s2 ;
>>
>>You can also use them with numeric operands if you need to include
missing
>>values in the comparison. The descriptive statistics functions,
including
>>MIN/MAX ignore nulls - a side effect used to turn them into zeros via
>>expressions like sum(val,0). And, to boot, the operators execute
faster
>than
>>the respective functions.
>>
>>Kind regards
>>------------
>>Paul Dorfman
>>Jax, FL
>>------------
>>
>>On Wed, 23 Feb 2011 16:28:54 -0500, Bolotin Yevgeniy
>><YBolotin@SCHOOLS.NYC.GOV> wrote:
>>
>>>The MAX function only works on numbers in SAS 9.2
>>>http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default
/vi
>>>ewer.htm#a000245913.htm
>>>
>>>However, it works on both numbers and characters in SAS/IML 9.2
>>>http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/
lan
>>>gref_sect169.htm
>>>
>>>
>>>Is there a character-capable MAX function in SAS Base that I can use?
>>>
>>>(surprisingly enough, PROC SQL seems to have the same limitation)
>>> ERROR: Function MAX requires a numeric expression as argument 1.
>>>
>>>
>>>
>>>
>>>data _z;
>>>length z $1.;
>>>z = max('2','3','a');
>>>run;
>>>
>>>
>>>NOTE: Character values have been converted to numeric values at the
>>>places given by:
>>> (Line):(Column).
>>> 3053:9 3053:13 3053:17
>>>NOTE: Numeric values have been converted to character values at the
>>>places given by:
>>> (Line):(Column).
>>> 3053:5
>>>NOTE: Invalid numeric data, 'a' , at line 3053 column 17.
>>>z=3 _ERROR_=1 _N_=1
>>>
>>>
>>>Thanks
>>>
>>>SAS 9.2
>>>WinXP SP3
************* IMPORTANT - PLEASE READ ********************
This e-mail, including attachments, may include confidential and/or proprietary information,
and may be used only by the person or entity to which it is addressed. If the reader of this
e-mail is not the intended recipient or his or her authorized agent, the reader is hereby
notified that any dissemination, distribution or copying of this e-mail is prohibited. If you
have received this e-mail in error, please notify the sender by replying to this message
and delete this e-mail immediately.
|