Why not use standard matrix multiplication which is straightforward here: x %*% diag(1/s)
HTH, Eric On Wed, Mar 3, 2021 at 7:13 AM Harold Doran < harold.do...@cambiumassessment.com> wrote: > To make sure the scalar is used instead of using the recycled vector s, > maybe like this > > x <- matrix(1:20, nrow=10) > s <- c(1,2) > sapply(1:2, function(i) x[,i]/s[i]) > > -----Original Message----- > From: R-help <r-help-boun...@r-project.org> On Behalf Of Steven Yen > Sent: Wednesday, March 3, 2021 6:00 AM > To: R-help Mailing List <r-help@r-project.org> > Subject: [R] Column-by-column division > > I have a 10 x 2 matrix x. Like to divide the first column by s[1] and > second column by s[2]. The following lines work but are clumsy. Any idea? > Thanks. > > > x > [,1] [,2] > [1,] 1 11 > [2,] 2 12 > [3,] 3 13 > [4,] 4 14 > [5,] 5 15 > [6,] 6 16 > [7,] 7 17 > [8,] 8 18 > [9,] 9 19 > [10,] 10 20 > > s > [1] 1 2 > > t(t(x)/s) > [,1] [,2] > [1,] 1 5.5 > [2,] 2 6.0 > [3,] 3 6.5 > [4,] 4 7.0 > [5,] 5 7.5 > [6,] 6 8.0 > [7,] 7 8.5 > [8,] 8 9.0 > [9,] 9 9.5 > [10,] 10 10.0 > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.