Try this: mapply(f, split(A, 1:nrow(A)), b)
On 10/5/05, Tamas K Papp <[EMAIL PROTECTED]> wrote: > Hi, > > I have a matrix A and a vector b, and would like to apply a function > f(a,b) to the rows of A and the elements of b. Eg > > A <- matrix(1:4,2,2) > b <- c(5,7) > f <- function(a,b) {sum(a)*b} > > myapply(f,A=A,b=b) > > would give > > (1+3)*5 = 20 > (2+4)*7 = 42 > > I found mapply, but it does not work for matrices. How could I do > this without loops? The above is just a toy example, the problem I am > using this for has larger matrices, and f is a computation that does > not handle vectors. > > One thing I thought of is > > sapply(seq(along=b),function(i,A,b){f(A[i,],b[i])},A=A,b=b) > > but this is not very elegant. I checked the archives and found nothing. > > Thank you, > > Tamas > > -- > Bayesian statistics is difficult in the sense that thinking is difficult. > --Donald A. Berry, American Statistician 51:242 (1997) > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html