On Aug 8, 2011, at 17:16 , Kathie wrote: > Dear all, > > Even though one of R users answered my question, I cannot understand, so I > re-ask this question. > > I am trying to use "do.call", but I don't think I totally understand this > function.
It has nothing to do with do.call, the problem is that your fc() function isn't vectorized. Specifically: > dpois(0, exp(rowSums(t(X[1,])*B[,1]))) [1] 0.1891356 > dpois(0, exp(rowSums(t(X[2,])*B[,1]))) [1] 0.1859965 > dpois(0, exp(rowSums(t(X[c(1,2),])*B[,c(1,1)]))) x 0.06598804 0.35684473 which in turn boils down to > t(X[c(1,2),])*B[,c(1,1)] [,1] [,2] 0.50 0.50 x 0.01 0.02 > t(X[1,])*B[,1] x [1,] 0.5 0.01 > t(X[2,])*B[,1] x [1,] 0.5 0.02 (You may be needing a drop=FALSE or two, but how am I to tell...) > > 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/on-do-call-function-tp3727262p3727262.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@gmail.com "Døden skal tape!" --- Nordahl Grieg ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.