[R-br] Função não encontrada

. . xkziloj em gmail.com
Terça Agosto 30 11:55:48 BRT 2011


func <- Vectorize(FUN=
  function(y, frac, rate, sad, samp="Poisson", trunc=0, ...){
		f0 <- function(y,frac,n) {
			f1 <- function(y,frac,n){
				dpois(y,frac*n)
			}
			dcom <- paste("d",deparse(substitute(sad)),sep="")
			dots <- c(as.name("n"),list(...))
			f2 <- function() call(dcom,dots)
			f <- function(n){
				f1(y,frac,n)*f2
			}
			myintegrate <- function() {
				r <- 0
				r1 <- 1
				x1 <- 0
				dx <- 20
				while(r1 > 10e-500) {
					r1 <- integrate(f,x1,x1+dx)$value
					r <- r + r1
					x1 <- x1 + dx
				}
				integrate(f,x1,Inf)$valu
			}
			myintegrate()
		}
		f0(y,frac,n)/(1-f0(trunc,frac,n))
	},"y")

func(10, 0.1, 0.1, exp)

2011/8/30 . . <xkziloj em gmail.com>:
> ...pois é, tenho dúvida sobre a estrutura em geral da minha função,
> mas ontem estava funcionando deste jeito. Acho que f2 estava no
> workspace e eu não percebi, depois que reiniciei o computador não
> funcionou mais.
>
> Mas voltando ao ponto, redefini f2 como função agora. Só que dá outro erro
>
> Error in f1(y, frac, n) * f2 : non-numeric argument to binary operator
>
> Se puder me ajudar, ficarei muito agradecido.
>
>
> 2011/8/30 Rodrigo Coster <rcoster em gmail.com>:
>> f2 nao ta definida como função (olha como tu definiu f e f1 e compara com
>> f2)
>>
>> []'s
>>
>> 2011/8/30 . . <xkziloj em gmail.com>
>>>
>>> Olá pessoal,
>>>
>>> ao rodar a função abaixo, obtenho o erro
>>>
>>> Error in f(x, ...) : could not find function "f2"
>>>
>>> ...mas f2 está definida logo acima de f...
>>>
>>> Alguma dica?
>>>
>>> Obrigado.
>>>
>>> func <- Vectorize(FUN=
>>>  function(y, frac, rate, sad, samp="Poisson", trunc=0, ...){
>>>                f0 <- function(y,frac,n) {
>>>                        f1 <- function(y,frac,n){
>>>                                dpois(y,frac*n)
>>>                        }
>>>                        dcom <- paste("d",deparse(substitute(sad)),sep="")
>>>                        dots <- c(as.name("n"),list(...))
>>>                        f2 <- call(dcom,dots)
>>>                        f <- function(n){
>>>                                f1(y,frac,n)*f2(n)
>>>                        }
>>>                        myintegrate <- function() {
>>>                                r <- 0
>>>                                r1 <- 1
>>>                                x1 <- 0
>>>                                dx <- 20
>>>                                while(r1 > 10e-500) {
>>>                                        r1 <- integrate(f,x1,x1+dx)$value
>>>                                        r <- r + r1
>>>                                        x1 <- x1 + dx
>>>                                }
>>>                                integrate(f,x1,Inf)$valu
>>>                        }
>>>                        myintegrate()
>>>                }
>>>                f0(y,frac,n)/(1-f0(trunc,frac,n))
>>>        },"y")
>>>
>>> func(10, 0.1, 0.1, exp)
>>> _______________________________________________
>>> 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.
>>
>


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