Date: Tue, 3 Feb 2004 16:36:51 -0800
Reply-To: "Choate, Paul@DDS" <pchoate@DDS.CA.GOV>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Choate, Paul@DDS" <pchoate@DDS.CA.GOV>
Subject: Re: Conundrum using Set Point=
Richard - Note that if you operate on the id variable the problem
disappears:
(V8.02 PC and MVS)
either
P = rowmap[id+0];
or
id=id;
P = rowmap[id];
and the problem stops. The variable id is unstable for some reason. Sounds
like a question for Paul Dorfman.
Paul Choate
DDS Data Extraction
(916) 654-2160
-----Original Message-----
From: Richard A. DeVenezia [mailto:radevenz@IX.NETCOM.COM]
Sent: Tuesday, February 03, 2004 3:14 PM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Conundrum using Set Point=
I've a very strange situation happening in the following program. The third
assignment to the point= variable is not 'sticking' and is thus causing a
terrific headache.
----------
data ids;
input id;
rownum+1;
cards;
5
10
6
1
2
7
1
3
7
11
8
5
10
4
4
8
11
2
3
9
9
6
run;
data weird;
array rowmap [11] _temporary_;
do while (not eoids);
set ids end=eoids;
if mod(rownum,2)=1 then
rowmap [id] = rownum;
end;
P = 1;
put P=;
set ids point=P;
rowmap [ id ] = -rowmap [ id ];
put rownum= id= rowmap[id]=;
P + 1;
put P=;
set ids point=P;
put rownum= id= rowmap[id]=;
P = rowmap[id];
put P=;
set ids point=P;
put rownum= id= rowmap[id]=;
stop;
run;
----------
LOG
----------
P=1
rownum=1 id=5 rowmap[5]=-1
P=2
rownum=2 id=10 rowmap[10]=13
P=-1
rownum=2 id=10 rowmap[10]=13
eoids=1 id=10 rownum=2 P=-1 _ERROR_=1 _N_=1
-----
Focus on the 4th and 5th lines of the log:
rownum=2 id=10 rowmap[10]=13
P=-1
Generated by code
put rownum= id= rowmap[id]=;
P = rowmap[id];
put P=;
rowmap[10] is 13, and is assigned to P, which when put shows -1 ! ( -1 is
value of rowmap[5] ! )
Any clues to what is going on ?
--
Richard A. DeVenezia