*Felipe, * * * *pelo que entendi você esta considerando modelos de teoria de resposta ao item certo? E dados os parâmetros e o score simulado irá obter o padrão de respostas certo?* * * Em 14 de setembro de 2012 23:00, Felipe Buchbinder <[email protected]>escreveu:
> Eduardo e Fábio, > Muito obrigado pela ajuda. Se o problema não está no which, alguma idéia > de onde ele possa estar? > A função *resp* já retorna resultados absurdos, então o problema tem que > estar nela. Só não vejo onde.... > > > 2012/9/14 Eduardo Leoni <[email protected]> > >> E o problema não está no which... >> >> resp <- function() { >> k <- 5 >> p.vec = NULL >> for(category in 1:k) # k = 5 >> { >> p = runif(1) >> 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 >> } >> s <- NULL >> for (i in 1:100) { >> s <- c(s, resp()) >> } >> > table(s) >> >s >> > 1 2 3 4 5 >> >15 6 10 21 48 >> >> >> >> 2012/9/14 Eduardo Leoni <[email protected]> >> >>> ifelse quando length é igual a 1 não é recomendável: >>> >>> > system.time(replicate(10000, if(1>0) {1} else { 0})) >>> user system elapsed >>> 0.028 0.000 0.030 >>> > system.time(replicate(10000, ifelse(1>0, 1, 0))) >>> user system elapsed >>> 0.224 0.000 0.224 >>> > >>> >>> >>> 2012/9/14 Fabio Mathias Corrêa <[email protected]> >>> >>>> Felipe, >>>> >>>> Realmente, o if resolve o problema. >>>> >>>> Só uma dica, troque o if por >>>> >>>> ifelse(length(temp)>0,resp=max(temp), resp=1) >>>> >>>> Quanto ao which, vc precisa corrgir! >>>> >>>> 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 <[email protected]> >>>> *Para:* [email protected] >>>> *Enviadas:* Sexta-feira, 14 de Setembro de 2012 0:12 >>>> >>>> *Assunto:* Re: [R-br] Dúvida função no R >>>> >>>> Fábio, >>>> >>>> Muito obrigado pela ajuda. Mas o *if *já não dá conta do caso em que >>>> p.vec não possui um elemento maior do que seed? E como p.vec é construido >>>> dentro de um loop que adiciona um elemento durante *k* iterações, como >>>> ele pode ter mais do que *k* elementos? Eu achava que já tinha >>>> controlado para evitar esses casos... não? >>>> >>>> mais uma vez obrigado, >>>> >>>> Felipe >>>> >>>> 2012/9/13 Fabio Mathias Corrêa <[email protected]> >>>> >>>> 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 <[email protected]> >>>> *Para:* [email protected] >>>> *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 <[email protected]> >>>> >>>> Felipe, >>>> >>>> Para CMR, consulte: https://gist.github.com/1088208 >>>> >>>> att, >>>> FH >>>> >>>> >>>> 2012/9/13 Felipe Buchbinder <[email protected]> >>>> >>>> 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 <[email protected]> >>>> >>>> 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 >>>> [email protected]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 >>>> [email protected] >>>> 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 >>>> [email protected] >>>> 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 >>>> [email protected] >>>> 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 >>>> [email protected] >>>> 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 >>>> [email protected] >>>> 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 >>>> [email protected] >>>> 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 >>>> [email protected] >>>> 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 >> [email protected] >> 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 > [email protected] > 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 [email protected] 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.
