
O problema está nesta parte aqui! Nem sempre o vetor p.vec possui um elemento maior que o seed, e quando isto ocorre retorna interger(0) Outro problema é que o which pega a posição do elemento, então, quando vc pega o max(temp), se o vetor tem tamanho 20, por exemplo, ele vai retornar o 20 e não o elemento. Precisa corrigir ai! temp = which(p.vec>seed) #we use this temporary vector in order to avoid warnings should its length be zero print(temp) if(length(temp)>0){resp=max(temp)}else{resp=1} Valeu! Fábio Mathias Corrêa Universidade Estadual de Santa Cruz Departamento de Ciências Exatas e da Terra - DCET Campus Soane Nazaré de Andrade, km 16 Rodovia Ilhéus-Itabuna CEP 45662-900. Ilhéus-Bahia Tel.: 73-3680-5076 ________________________________ De: Felipe Buchbinder <felbuch@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Quinta-feira, 13 de Setembro de 2012 15:24 Assunto: Re: [R-br] Dúvida função no R Obrigado pela referência, Preparei um CMR que envio anexo. Mais uma vez, obrigado Felipe 2012/9/13 FHRB Toledo <fernandohtoledo@gmail.com> Felipe,
Para CMR, consulte: https://gist.github.com/1088208
att, FH
2012/9/13 Felipe Buchbinder <felbuch@gmail.com>
O k foi definido no início do código, fora da função, como k = 5.
Desculpe a ignorância, mas o que é um CMR? Como eu posso fazer um para enviar à lista?
Obrigado pela disposição,
Felipe
2012/9/13 Leonard de Assis <assis.leonard@gmail.com>
Onde foi definido o k?
[]s
Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 13/09/2012 12:56, Felipe Buchbinder escreveu:
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
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.