[R] cycling k times a realization of a random walk.....problems..

Federico Bonofiglio bonoricus at yahoo.it
Fri Dec 4 14:54:52 CET 2009


hello R-masters.

i have an R-issue here that i don't know if you'd wish to help me  about it:

briefly i'd like to generate many (say hundred) realizations of a random walk, execute a few operations on each of them (mean time of return), and graph each realization on the same plot.
IN OTHER WORDS I'D LIKE TO IMPOSE A LOOPING CYCLE TO THE COMMAND NOT THE ARGUMENT OF THE COMMAND.

for some of these questions i have already a partial answer: my main problem here is automatizing the process for 100 times.

my random walk generating function is:

rwalk <- function(n,p, x0=0)
         {
          x <- rbinom(n,1,p)
          x[which(x==0)] <- -1
          y<-c(x0,x)
          y <- cumsum(y)
           }

THIS IS THE CODE THAT I'D LIKE TO REITERATE

a<- rwalk(n,p,x0=0) #whish to generate 100 of those 
#and for each calculate the following
o<-which(a==0)
N<-length(o) # number of times the walk returns to 0
Nn<-(o[-1]-N) # number of steps to get to 0
V<-mean(Nn)  # mean time of return to 0


par(mfrow=c(1,1))
plot(0:n, a, type= "l", main="...", xlab="tempo", ylab="stato",
ylim=c(...), lwd=3, col="red", lty=1)

par(new=T) 

plot(0:n, b, type= "l", main="", xlab="", ylab="",
ylim=c(), lwd=3, col="green", lty=2)

#technically i've tryed to fuse all those parts in a function reiterating k=100 times with a for cycle, but with no succes, and i dare there must be something really disturbing in the code below ....

function(k){
for (i in 1:k){
a[i]<-rwalk(1e+04,0.5,0)
o[i]<-which(a[i]==0)
N[i]<-length(o[i]) 
Nn[i]<-(o[i][-1]-N[i]) 
V[i]<-mean(Nn[i]) 
w<-c(V[1]:V[k])
M<-mean(w) #mean over all the realizations
par(mfrow=c(1,1))
plot(0:n, a[1], type= "l", main="...", xlab="tempo", ylab="stato",
ylim=c(...), lwd=3, col="red", lty=1)

par(new=T) 

plot(0:n, a[i], type= "l", main="", xlab="", ylab="",
ylim=c(...), lwd=3, col=c(1:i), lty=2)

}
}   #NOTE: I'VE ALSO TRIED TO REITERATE THE WALK WITH THE rep()
    # t<-rep(rwalk(1e+04,0.5,0),100)
     # then of course i have the problem of splicing this ridicolously   #one milion long vector in 100 bits of tenthousand, and still goig through all the calculations and plotting i meant before....

i wonder what......

THANK YOU FOR YOUR PRECIUOS ATTENTION!!! 

  











More information about the R-help mailing list