Prezados professores,

Estou com um problema em uma função no R.
A função é a seguinte:

resp <- function(subject,item,trait)
{
  
  p.vec = NULL
  
  for(category in 1:k)  # k = 5
  {
    p = ogive ( theta[subject,trait] , a[item] , b[item,category] , D )    # aqui é uma logit (D=1) ou probit (D=1.7)
    p.vec = c(p.vec,p)
  }
  
  #Generates a random number
  
  seed<-runif(1,0.2,0.8)
  
  #Selects an answer
  
  temp = which ( p.vec>seed ) 
  if( length (temp) > 0 ) { resp = max (temp) } else { resp = 1 }
  resp
}


Esta função está inserida em um loop e deveria me retornar um número inteiro entre 1 e 5.
Da primeira vez, isto acontece.
Mas a partir da segunda, ela começa a me retornar valores como 20, 16,...

Alguma idéia de porque isso acontece???

Desde já, obrigado!

Felipe Buchbinder