[R] matrix column division by vector

David L Carlson dcarlson at tamu.edu
Wed May 14 16:59:36 CEST 2014


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-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of carol white
Sent: Wednesday, May 14, 2014 9:52 AM
To: r-help at 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]]



More information about the R-help mailing list