R-help readers,

I'm having a problem with an R script (see below), which regularly generates the error message,

Error in start:(start + (sample.length - 1)) : 
        NA/NaN argument

, for which I am unsure of the cause.

In essence, the script (below) generates the start and end points for random subsamples from along a vector (in reality a transect (of a given length, sample.length), that may be used to subsample from another vector of data.  The important point is that once a section of the transect has
been sampled, it cannot be resampled by an overlapping sub-transect.  WHile there are obvious limits on the number of non-overlapping subvectors that can be 
taken from the original vector, I don't think this is the source of the error message, although the error is increasingly common as more of hte original vector is sampled.
Any help would be greatly appreciated.
regards 
Nick

r1<-function(transect.length,sample.length,reps) {   #Input: transect length, subsample length No.subsamples (reps).
x<-c(1:transect.length)     #create transect, x, of required length.
subsamples<-mat.or.vec(reps,2)    #create matrix for output of subsampled start and end points.
for(i in 1:reps) {     #start loop for reps.
start<-ceiling(runif(1,0,(transect.length-sample.length)))     #generate initial random start point.
while (any(x[start:(start+(sample.length-1))])=="NA") start<-sample(x[1:(transect.length-sample.length)],1) #check for Na's in the subsample range indicating previously sampled points. if present, choose a new start point.
subsamples[i,1]<-start     #store start point in ouput matrix
subsamples[i,2]<-(start+(sample.length-1))  #store end point in output matrix
x[start:(start+(sample.length-1))]<-NA   #convert sampled points to NA, for detection within the while loop above.
}       
return(x,subsamples)     #return output.
}

I would typically run the script with an input such as r1(1000,50,10)



	[[alternate HTML version deleted]]


