On 11/07/2012 03:44 AM, Pauli wrote:
Hello,

I am a R beginner and I have a question about a litte function I found.
Here is the code:

# Gambler's Ruin Problem.
# seed capital:                k
# rounds:                      n
# probability of success:                  p
# number of trials:             N
# graphical output (yes/no): draw
# Wait for new graphic (yes/no):   ask

ruin<- function( N = 1, n = 10, k = 1, p = 1 / 2,
                  draw = FALSE, ask = FALSE ){
    if(draw)
      par( ask = ask )
    r<- 0
    for( i in 1:N ){
      x<- k + cumsum (sample( c(-1, 1),replace = TRUE, n,prob = c(1-p, p)))
      if( min(x)<= 0 ){
        r<- r + 1
        if(draw)
          ruin.plot( k, x, col = "red",main = paste(i, "th trial: ruin!" ) )
      }
      else if(draw)
             ruin.plot( k, x, main = paste( i, "th trial: no ruin" ),ylim =
c( 0, max(x) ) )
    }
    return(r / N)
}

Now I want to start it with for example
"ruin(N=100,n=1000,k=50,draw=TRUE,ask=TRUE)" but i received the message,
that there is an unused argument: (col = "red",main = paste(i, "th trial:
ruin!" ) ).
What is wrong with the code?

Hi Pauli,
Since you received the "unused argument" error message, you may have defined the "ruin.plot" function somewhere without the "col=" argument. I tried changing the call to "ruin.plot" to simply "plot", but your k and x values are of different lengths, so they won't plot anyway. I think what you may be trying to achieve is more like this:

ruin<-function( N = 1, n = 10, k = 1, p = 1 / 2,
 draw = FALSE, ask = FALSE ){

 if(draw) par( ask = ask )
 r <- 0
 plot(0,xlim=c(0,N),ylim=c(-20,k),type="n",main="Gambler's Ruin plot")
 for( i in 1:N ){
  x <- k + cumsum (sample( c(-1, 1),replace = TRUE, n,prob = c(1-p, p)))
  if( min(x) <= 0 ) {
   r <- r + 1
   if(draw) {
    points(i, x[which.min(x)], col = "red" )
    text(i,x[which.min(x)]-2,"ruin!")
   }
  }
  else if(draw) points(i, x[which.min(x)], col="green")
 }
 return(r / N)
}

ruin(N=100,n=1000,k=50,draw=TRUE,ask=TRUE)

Jim

______________________________________________
R-help@r-project.org 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