Hello,

I am new and am having a hard time getting the proper syntax for output
from loops.  I am working on a simulation to generate a null expectation of
bee behavior.  Pieces of it work.  The part that I am having specific
difficulty is in output of a vector from within the while loop that I am
using.  Basically the simulation works as such:  I have a starting point
and a neighbor matrix and a certain threshold distance for travel.  In the
while loop the "bee" moves to a randomly chosen neighbor location.  I want
to be able to record the elevations of these points (including the starting
point) so that I can look at variance in elevation and mean elevation.  The
loop itself works as does the calculation of the final elevation list,
change in elevation list, and true total distance traveled.  I have looked
in all of the email archives but have not come across a correct way of
doing it.  Code below:

start.elev.list<-list()
final.mean.elev.list<-list()
final.elev.list<-list()
final.distance.list<-list()
final.delta.elev.list<-list()
final.var.elev<-list()


b<-length(Bees.Day.1$bee)
for (bee in 1:b){ 
        #this is for number of bees that are trackable in the day with starting
points and threshold distances
   elev.current.vector<-vector(mode="numeric", length=0)
   count<-1
   ElevSS<-0
   d.traveled<-0
   thresh<-Bees.Day.1$cum.dist[bee]
   n<-Bees.Day.1$grid.pt[bee]
   #I'm making this up for the threshold, want to be bee specific
   #current.point<-round(runif(1,1,n)) #random starting point
   current.point<-Day.1.neighbor.matrix[1,n]
   #I want to specify the first point in the matrix
   Elev.Sum<-Day.1.elev.vector[current.point]


   while(d.traveled<thresh){
        #which of the four options will be selection
        transition<-round(runif(1,1,4))

        #so, what's the new point?
        new.point<- Day.1.neighbor.matrix[transition,n]
        
        #what is the variance in elevation changed
        Elev.current<-Day.1.elev.vector[current.point]
        elev.current.vector[i]<-Elev.current
        Elev.new<-Day.1.elev.vector[new.point]
        Elev.Sum<-(Elev.Sum+Elev.new)
        
        #how far will bee travelled
        current.travel<- Day.1.distance.matrix[current.point, new.point]
        d.traveled<- current.travel + d.traveled
        current.point<- new.point
        
        #Number of iterations until we reach the threshold
        count<-count+1
        
   }
   
   print(count)
   print(elev.current.vector)
   mean.elev<-Elev.Sum/count
   print(paste("Final mean elev for bee", bee, "is", mean.elev, sep=" "))
   final.mean.elev.list[bee]<-list(mean.elev)

   #What was the start elevation?
   start.elev<-Day.1.elev.vector[n]
   print(paste("Start elev for bee",bee,"is",start.elev, sep=" "))
   start.elev.list[bee]<-list(start.elev)
   
   #what is the final elevation?
   final.elev<-Day.1.elev.vector[current.point]
   print(paste("Final elev for bee",bee,"is", final.elev,sep=" "))
   final.elev.list[bee]<-list(final.elev)
   
   print(paste("Final travel distance for bee", bee,"is", d.traveled, sep=" "))
   final.distance.list[bee]<-list(d.traveled)
      
   net.delta.elev<-(final.elev-Day.1.elev.vector[n])
   print(paste("Final net change in elevation for bee",bee,"is",
net.delta.elev,sep=" "))
   final.delta.elev.list[bee]<-list(net.delta.elev)
   
}
~~~~~~~~~~~~~~~~~~
Ryan D. Briscoe Runquist
Population Biology Graduate Group
University of California, Davis
[EMAIL PROTECTED]

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to