[R-br] Problema ao truncar PDF

Paulo Justiniano paulojus em leg.ufpr.br
Quinta Junho 16 08:51:42 BRT 2011


seu exemplo roda aqui sem mensagens de erro

provavelemtne há problemas com sues objetos  na area de trabalho

1. se puder limpe a area de rtabalho (ou inicie outra)
rm(list=ls())
e rode novamente

2. suas funcoes nao passam todos argumentos umas para outras. Por exemplo
dpoix.t chama dpoix passando apenas y (ou seja assumindo defaults)
confira se e'isto memso que deseja

3. quando encontrar error tente usar:

traceback()
ou ainda melhor
debug()
para identifica-los

debug() eprmite rodart a funcao linha a linha e a cada passo voce pode 
examonar os objetos





On Thu, 16 Jun 2011, Cristiano Strieder wrote:

> Obrigado pelas respostas mais uma vez. Particularmente acho melhor
> incluir o parâmetro trunc na dricker.t().
>
> Ao invés da dricker, estou agora aplicando a mesma idéia a função
> dpoig. Novamente estou com problema, Error in f * g : non-numeric
> argument to binary operator.
>
> Seque código:
>
> dpoix <- function(y, frac=0.05, rate=1/1000, log=FALSE) {
> 	  b <- y*log(frac)
> 	  m <- log(rate)
> 	  n <- (y+1)*log(rate+frac)
>    if(log)b+m-n else exp(b+m-n)
> }
>
> ppoix <- function(y, frac=0.05, rate=1/1000) {
>   r <- exp(-y*log(rate+frac))*(rate*exp(y*log(rate+frac) -
> rate*exp(y*log(frac))))
>   s <- (rate+frac)*log(rate+frac) - log(frac)*rate - frac*log(frac)
>   r/s
>  }
>
> dpoix.t <- function(y, frac=0.05, rate=1/1000, trunc) {
>    p.trunc <- ppoix(trunc)
>    dpoix(y)/(1-p.trunc)
>  }
>
> dpoix(10)
> dpoix.t(10,trunc=0)
>
> dricker =  function (x,b,...) {b^2*x*exp(-b*x)}
> pricker = function (x, b,...){exp(-b*x)*(exp(b*x)-b*x-1)} # CDF
> dricker.t = function (x, b, trunc, ...){
>  p.trunc = pricker(trunc,b)
> 	dricker(x,b)/(1 - p.trunc)
> }
> dricker(x=10, b=0.1)
> dricker.t(x=10, b=0.1, trunc=0)
>
> Alguma sugestão?
>
>
> 2011/6/15 Benilton Carvalho <beniltoncarvalho em gmail.com>:
>> pelo jeito o autor da pagina nao testou o codigo... ou, se testou,
>> tinha uma variavel (trunc) no ambiente que foi herdada pela funcao na
>> chamada.
>>
>> a funcao dricker.t precisa da seguinte linha antes de p.trunc
>>
>> trunc = list(...)[['trunc']]
>>
>> b
>>
>> 2011/6/16 Cristiano Strieder <cstrieder em gmail.com>:
>>> Obrigado pelas respostas srs, mas acho q ainda n compreendi como
>>> solucionar o problema. Mesmo se eu passar o trunc na chamada da
>>> função, como abaixo, ainda retorna o erro, Error in -b * x :
>>> non-numeric argument to binary operator.
>>>
>>> Estou me basendo neste material,
>>> http://ecologia.ib.usp.br/let/doku.php?id=tutoriais:pdf.
>>>
>>> dricker =  function (x,b,...) {b^2*x*exp(-b*x)}
>>> pricker = function (x, b,...){exp(-b*x)*(exp(b*x)-b*x-1)} # CDF
>>> dricker.t = function (x, b, ...){
>>>  p.trunc = pricker(trunc,b)
>>>  dricker(x,b)/(1 - p.trunc)
>>> }
>>> dricker.t(x=10, b=0.1, trunc=1)
>>>
>>>
>>> 2011/6/15 Paulo Justiniano <paulojus em leg.ufpr.br>:
>>>> veja trecho marcado
>>>> a variavel "trunc" nao eh definida em lugar algum
>>>> e portanto a funcao nao sabe de onde ler trunc
>>>>
>>>> note que seu codigo pode estar lendo variaveis do GlobalEnv
>>>>
>>>> On Wed, 15 Jun 2011, Cristiano Strieder wrote:
>>>>
>>>>> Olá,
>>>>>
>>>>> estou com problemas no seguinte código:
>>>>>
>>>>> dricker =  function (x,b,...) {b^2*x*exp(-b*x)}
>>>>> pricker = function (x, b,...){exp(-b*x)*(exp(b*x)-b*x-1)} # CDF
>>>>> dricker.t = function (x, b,...){
>>>>>  p.trunc = pricker(trunc,b)
>>>>
>>>>                     ^^^^^
>>>>>
>>>>>        dricker(x,b)/(1 - p.trunc)}
>>>>> dricker.t(10, b=0.1)
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> Error in -b * x : non-numeric argument to binary operator
>>>>>
>>>>> Alguma sugestão?
>>>>>
>>>>> Obrigado.
>>>>>
>>>>> --
>>>>> Cristiano Strieder
>>>>> São José dos Campos - SP
>>>>> _______________________________________________
>>>>> R-br mailing list
>>>>> R-br em 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 em 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.
>>>>
>>>
>>>
>>>
>>> --
>>> Cristiano Strieder
>>> São José dos Campos - SP
>>> _______________________________________________
>>> R-br mailing list
>>> R-br em 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.
>>>
>>
>>
>>
>> --
>> Successful people ask better questions, and as a result, they get
>> better answers. (Tony Robbins)
>> _______________________________________________
>> R-br mailing list
>> R-br em 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.
>>
>
>
>
> -- 
> Cristiano Strieder
> São José dos Campos - SP
> _______________________________________________
> R-br mailing list
> R-br em 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.
>


Mais detalhes sobre a lista de discussão R-br