[R-br] Generalizando chamada de função

. . xkziloj em gmail.com
Terça Setembro 6 09:39:53 BRT 2011


Olá pessoal,

Gostaria da ajuda de vcs para entender o que acontece no código da
"func2". Meu plano é fazer com que func2 e func1 retornem os mesmos
valores. Para "func1" obtenho...

0.25 with absolute error < 8.4e-05

Mas "func2" está retornando...

Error in dpois(1, 0.1, 23.3065168689948, 0.000429064542600244,
3.82988398013855,  :
  unused argument(s) (0.000429064542600244, 3.82988398013855,
0.00261104515224461, 1.37999516465199, 0.0072464022020844,
0.673787740945863, 0.0148414691931943, 0.383193602946711,
0.0260964690514175, 0.236612585866545, 0.0422631787036055,
0.152456705113438, 0.0655923922306948)


func1 <- function(y, a, rate) {
	f1 <- function(n, y, a, rate) {
		lambda <- a * n
		dexp(n, rate) * dpois(y, lambda)
	}
	integrate(f1, 0, Inf, y, a, rate)
}

func1(1, 0.1, 0.1)


func2 <- function(y, a, rate, samp) {
	f1 <- function(n, y, a, rate, samp) {
		
		SampDist <- function(y, a, n, samp) {
			lambda <- a * n
			dcom <- paste("d", samp, sep="")
      		        dots <- as.list(c(y, lambda))
			do.call(dcom, dots)
		}
		
		dexp(n, rate) * SampDist(y, a, n, samp)
	}
	integrate(f1, 0, Inf, y, a, rate, samp)
}

func2(1, 0.1, 0.1, "pois")



Desde já obrigado.


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