certo 2012/9/14 Leandro Marino <[email protected]>
> *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. >
_______________________________________________ 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.
