[R] on "do.call" function

Zhang,Yanwei Yanwei.Zhang at cna.com
Mon Aug 8 19:14:10 CEST 2011


Hi, 

Your use of "do.call" is essentially equal to "dpois(lt$y0, exp(rowSums(t(X[lt$i,])*B[,1])))". You do not need to use "do.call", "sapply" or "apply" will do, e.g.,   

>  sapply(1:nrow(lt), function(x) fc(lt[x,2],lt[x,1]))
[1] 0.1891356 0.1859965 0.3149658 0.3128512 0.2622549 0.2631122

Wayne (Yanwei) Zhang
Statistical Research 
>CNA

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Kathie
Sent: Monday, August 08, 2011 10:16 AM
To: r-help at r-project.org
Subject: [R] on "do.call" function

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.

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 at 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.

NOTICE:  This e-mail message, including any attachments and appended messages, is for the sole use of the intended recipients and may contain confidential and legally privileged information.
If you are not the intended recipient, any review, dissemination, distribution, copying, storage or other use of all or any portion of this message is strictly prohibited.
If you received this message in error, please immediately notify the sender by reply e-mail and delete this message in its entirety.



More information about the R-help mailing list