Date: Thu, 21 Nov 2002 18:50:33 GMT
Reply-To: David Wright <David_wright@SPRA.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: David Wright <David_wright@SPRA.COM>
Organization: Your Company
Subject: Re: Set statement bug?
Well, various members of this newsgroup have once again proved that in spite
of all evidence to the contrary, SAS is really a nice neat logical language
and can be understood without knowing the source code.
In private corospondence, the solution of my nightmare (set A; setB;) was
Merge Junk Junk3;
Which puts the datasets 'side by side'. I suppose many of you may be
wondering, why in the hell did he use two set statements? My only defense is
that because I don't have the facilities to make this up on my own, someone
or some book must have told me to do it that way.
My earlier claim that the 'set statement' has a bug assumes that I knew what
a set statment was. Just because I have used it a million times reading in
datasets apparently is not enough experience to know what is actually going
on, unlike say, dropping a hammer a million times and see it falling to the
ground is enough to discover the laws of gravity.
To answer Howard_Schreier (below), the answer is that you get one observation
as long as both datasets have one observation, no matter how many
observations they contain. What lesson I am supposed to draw from this fact
Ian Whitlock urges me to try:
put "before junk3 " _n_= ;
put "after junk3 " _n_= ;
Which produces the inexplicable:
before junk3 _N_=1
after junk3 _N_=1
NOTE: There were 1 observations read from the data set WORK.JUNK3.
NOTE: There were 0 observations read from the data set WORK.JUNK.
NOTE: The data set WORK.ALL has 0 observations and 6 variables.
So, SAS read an observation, then apparently looses it when it sees that the
other data set had no observations.
What these experiments show us is that we have a yet a universal theory as to
how the set statement works.
Howard_Schreier@ITA.DOC.GOV wrote in <200211211454.gALEsP029264
>Consider a more general case, where JUNK and JUNK3 both contain some
>observations, but not the same number of observations.