You don't need do.call: > t(t(m)/v) [,1] [,2] [,3] [1,] 2 2 2 [2,] 1 1 1
> t(apply(m, 1, function(x) x/v)) [,1] [,2] [,3] [1,] 2 2 2 [2,] 1 1 1 ------------------------------------- David L Carlson Department of Anthropology Texas A&M University College Station, TX 77840-4352 -----Original Message----- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of carol white Sent: Wednesday, May 14, 2014 9:52 AM To: r-h...@stat.math.ethz.ch Subject: [R] matrix column division by vector Hi, What is the elegant script to divide the columns of a matrix by the respective position of a vector elements? m=rbind(c(6,4,2),c(3,2,1)) v= c(3,2,1) res= 6/3 4/2 2/1 3/3 2/2 1/1 this is correct mat2 = NULL for (i in 1: ncol(m)) mat2 = cbind(mat2, m[,i]/ v[i]) but how to do more compact and elegant with for ex do.call? Many thanks Carol [[alternative HTML version deleted]] ______________________________________________ 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.