Date: Thu, 29 Jun 2006 05:08:03 -0400
Reply-To: Jim Groeneveld <jim2stat@YAHOO.CO.UK>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Jim Groeneveld <jim2stat@YAHOO.CO.UK>
Subject: Re: SAS 8 vs. 9 incompatibility
Hi Venky,
Indeed. The following link, that I received from Lex Jansen, points out
that it is only a problem with SAS 8.2, evidently not other SAS 8.x
versions.
http://support.sas.com/techsup/unotes/SN/005/005758.html
I have to add, that did not hard code -. [minus period], but just [minus
variable], where variable was missing.
Regards - Jim.
On Wed, 28 Jun 2006 12:59:05 -0400, Venky Chakravarthy
<swovcc@HOTMAIL.COM> wrote:
>I was wondering about this too and decided to test it in version 6.12 as
>well. Interestingly Version 6.12 produces identical results to V9 (Mike's
>modified code included). In version 8.2 the results are as reported by
Jim -
> missing values for MisMis0 and MisMis1. I wonder what changed in Version
>8.2.
>
>Recently, on an unrelated issue that I discussed with SAS tech support
they
>indicated that sometimes when a bug gets fixed some other issues get
>fixed "by accident". Perhaps, this could apply here as well.
>
>Venky Chakravarthy
>
>On Wed, 28 Jun 2006 11:11:33 -0400, Mike Rhoads <RHOADSM1@WESTAT.COM>
wrote:
>
>>Now, try it with a special missing value ...
>>
>>DATA _NULL_;
>> MisMis = ._ EQ -._; * -. is not the missing value ._;
>> MisMis0 = 0 * (._ EQ -._); * and neither the Morse code for N;
>> MisMis1 = 1 * (._ EQ -._); * it is: minus the missing value .;
>> PUT (_ALL_)(=);
>>RUN;
>>
>>In SAS 9.1.3, WinXP, produces:
>>MisMis=0 MisMis0=0 MisMis1=0
>>
>>As a clue, it also produces:
>>NOTE: Missing values were generated as a result of performing an
>>operation on missing values.
>>
>>In terms of "the meaning of a negative missing value" -- the minus sign
>>(-) is an operator, just as the * and EQ are. Attempting to perform an
>>arithmetic operation such as negation on any missing value results in a
>>"standard" missing value (.). In SAS, however, the result of an
>>equality test is always true or false (1 or 0).
>>
>>Mike Rhoads
>>Westat
>>RhoadsM1@Westat.com
>>
>>
>>
>>-----Original Message-----
>>From: owner-sas-l@listserv.uga.edu [mailto:owner-sas-l@listserv.uga.edu]
>>On Behalf Of Jim Groeneveld
>>Sent: Wednesday, June 28, 2006 10:13 AM
>>To: SAS-L@LISTSERV.UGA.EDU
>>Cc: Jim Groeneveld
>>Subject: SAS 8 vs. 9 incompatibility
>>
>>
>>Hi friends,
>>
>>Run the following test program in both SAS vs. 8 and SAS vs. 9 if you
>>can
>>and have a look at the difference.
>>
>>DATA _NULL_;
>> MisMis = . EQ -.; * -. is not the missing value ._;
>> MisMis0 = 0 * (. EQ -.); * and neither the Morse code for N;
>> MisMis1 = 1 * (. EQ -.); * it is: minus the missing value .;
>> PUT (_ALL_)(=);
>>RUN;
>>
>>SAS vs. 8 yields:
>>MISMIS=1 MISMIS0=. MISMIS1=.
>>while SAS vs. 9 yields:
>>MISMIS=1 MISMIS0=0 MISMIS1=1
>>
>>You could question the meaning of a negative missing value, but given
>>the
>>first value I think SAS vs. 9 is correct with the two other values and
>>SAS
>>vs. 8 is not.
>>
>>Where I work now (on secondment) they changed from SAS 8 to SAS 9 today.
>>
>>Regards - Jim.
>>--
>>Jim Groeneveld, Netherlands
>>Statistician, SAS consultant
>>home.hccnet.nl/jim.groeneveld
|