Dear R-users,
This is a loop which is part of a bigger script. I managed to isolate the
error in this loop and simplified it to the bare minimum and made it
self-contained.

a<-c(2,3,4,5,5,5,6,6,6,7)

for(n in 1:10)
{
print(paste("n: ",n))
z1<-a[n]
#make a list container
ldata<-list()
t=1

while(z1==a[n])
{

#add dataframes to list
ldata[[t]]<-paste("hello")

n=n+1
t=t+1

}
print("------End of while loop-------")

for(y in 1:length(ldata))
{
print(ldata[[y]])
}

print(paste("n: ",n))
print("******End of for loop********")
}


This script has a vector "a", for-loop, and a nested while-loop.
The for-loop runs from 1 to length of a. At every number of a, it enters the
while-loop and a hello is saved into list ldata.
If the next number in the vector a is a different number from previous then
the while-loop is exited and saved hello is printed.
If the next number in vector a is same as before then it loops inside the
while-loop and several hellos are printed together.

Then run-time error is

Error in while (z1 == a[n]) { : missing value where TRUE/FALSE needed

Thats because an NA creeps in somewhere. The problem can be seen far before
that. The full output from the run is below.
A lot of stuff was printed to help with the debugging. At n=4, there are
three repeats of 5, therefore hello is printed 3 times. n then becomes 7.
Then when the for-loop returns to top, n miraculously becomes 5. Hows
that!!?? Then on, everything goes wrong. I cannot figure out the problem.

[1] "n:  1"
[1] "------End of while loop-------"
[1] "hello"
[1] "n:  2"
[1] "******End of for loop********"
[1] "n:  2"
[1] "------End of while loop-------"
[1] "hello"
[1] "n:  3"
[1] "******End of for loop********"
[1] "n:  3"
[1] "------End of while loop-------"
[1] "hello"
[1] "n:  4"
[1] "******End of for loop********"
[1] "n:  4"
[1] "------End of while loop-------"
[1] "hello"
[1] "hello"
[1] "hello"
[1] "n:  7"
[1] "******End of for loop********"
[1] "n:  5"
[1] "------End of while loop-------"
[1] "hello"
[1] "hello"
[1] "n:  7"
[1] "******End of for loop********"
[1] "n:  6"
[1] "------End of while loop-------"
[1] "hello"
[1] "n:  7"
[1] "******End of for loop********"
[1] "n:  7"
[1] "------End of while loop-------"
[1] "hello"
[1] "hello"
[1] "hello"
[1] "n:  10"
[1] "******End of for loop********"
[1] "n:  8"
[1] "------End of while loop-------"
[1] "hello"
[1] "hello"
[1] "n:  10"
[1] "******End of for loop********"
[1] "n:  9"
[1] "------End of while loop-------"
[1] "hello"
[1] "n:  10"
[1] "******End of for loop********"
[1] "n:  10"
Error in while (z1 == a[n]) { : missing value where TRUE/FALSE needed

Mr Stuck-up.....
Thanks for any help.
Roy

	[[alternative HTML version deleted]]

