[R] problem in do.call function
Kathie
kathryn.lord2000 at gmail.com
Mon Aug 8 10:34:41 CEST 2011
Dear all,
I am trying to use "do.call", but I don't think I totally understand this
function.
Here is an simple example.
--------------------------------------------
> B <- matrix(c(.5,.1,.2,.3),2,2)
> B
[,1] [,2]
[1,] 0.5 0.2
[2,] 0.1 0.3
> x <- c(.1,.2)
> X <- cbind(1,x)
> X
x
[1,] 1 0.1
[2,] 1 0.2
>
> lt <- expand.grid(i=seq(1,2), y0=seq(0,2))
> lt
i y0
1 1 0
2 2 0
3 1 1
4 2 1
5 1 2
6 2 2
>
> fc <- function(y0,i) dpois(y0, exp(rowSums(t(X[i,])*B[,1])))
>
> do.call(fc,lt)
[1] 1.892179e-09 3.348160e-01 3.800543e-08 3.663470e-01 3.816797e-07
2.004237e-01
--------------------------------------------
Unfortunately, what I want to get is
dpois(0, exp(rowSums(t(X[1,])*B[,1]))) = 0.1891356
dpois(0, exp(rowSums(t(X[2,])*B[,1]))) = 0.1859965
dpois(1, exp(rowSums(t(X[1,])*B[,1]))) = 0.3149658
dpois(1, exp(rowSums(t(X[2,])*B[,1]))) = 0.3128512
dpois(2, exp(rowSums(t(X[1,])*B[,1]))) = 0.2622549
dpois(2, exp(rowSums(t(X[2,])*B[,1]))) = 0.2631122
--------------------------------------------
Would you plz tell me why these two results are different?? and how do I get
what I want to using "do.call" function??
Regards,
Kathryn Lord
--
View this message in context: http://r.789695.n4.nabble.com/problem-in-do-call-function-tp3726413p3726413.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list