An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20120420/a11cdcfa/attachment.pl>
Matrix multiplication by multple constants
5 messages · Dimitris Rizopoulos, Vincy Pyne, David Winsemius +1 more
try this: x <- 1:3 y <- matrix(1:12, ncol = 3, nrow = 4) y * rep(x, each = nrow(y)) I hope it helps. Best, Dimitris
On 4/20/2012 10:51 AM, Vincy Pyne wrote:
Dear R helpers Suppose x<- c(1:3) y<- matrix(1:12, ncol = 3, nrow = 4)
y
[,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12 I wish to multiply 1st column of y by first element of x i.e. 1, 2nd column of y by 2nd element of x i.e. 2 an so on. Thus the resultant matrix should be like
z
[,1] [,2] [,3]
[1,] 1 10 27
[2,] 2 12 30
[3,] 3 14 33
[4,] 4 16 36
When I tried simple multiplication like x*y, y is getting multiplied column-wise
x*z
[,1] [,2] [,3] [1,] 1 5 9 [2,] 4 12 20 [3,] 9 21 33 [4,] 16 32 48 Kindly guide Regards Vincy [[alternative HTML version deleted]]
______________________________________________ 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.
Dimitris Rizopoulos Assistant Professor Department of Biostatistics Erasmus University Medical Center Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands Tel: +31/(0)10/7043478 Fax: +31/(0)10/7043014 Web: http://www.erasmusmc.nl/biostatistiek/
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20120420/33762d3a/attachment.pl>
On Apr 20, 2012, at 4:57 AM, Dimitris Rizopoulos wrote:
try this: x <- 1:3 y <- matrix(1:12, ncol = 3, nrow = 4) y * rep(x, each = nrow(y))
Another way with a function specifically designed for that purpose: sweep(y, 2, x, "*") -- David.
I hope it helps. Best, Dimitris On 4/20/2012 10:51 AM, Vincy Pyne wrote:
Dear R helpers Suppose x<- c(1:3) y<- matrix(1:12, ncol = 3, nrow = 4)
y
[,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12 I wish to multiply 1st column of y by first element of x i.e. 1, 2nd column of y by 2nd element of x i.e. 2 an so on. Thus the resultant matrix should be like
z
[,1] [,2] [,3]
[1,] 1 10 27
[2,] 2 12 30
[3,] 3 14 33
[4,] 4 16 36
When I tried simple multiplication like x*y, y is getting
multiplied column-wise
x*z
[,1] [,2] [,3] [1,] 1 5 9 [2,] 4 12 20 [3,] 9 21 33 [4,] 16 32 48 Kindly guide Regards Vincy [[alternative HTML version deleted]]
______________________________________________ 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.
-- Dimitris Rizopoulos Assistant Professor Department of Biostatistics Erasmus University Medical Center Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands Tel: +31/(0)10/7043478 Fax: +31/(0)10/7043014 Web: http://www.erasmusmc.nl/biostatistiek/
______________________________________________ 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.
David Winsemius, MD West Hartford, CT
And another way is to remember properties of matrix multiplication: y %*% diag(x)
On Fri, Apr 20, 2012 at 8:35 AM, David Winsemius <dwinsemius at comcast.net> wrote:
On Apr 20, 2012, at 4:57 AM, Dimitris Rizopoulos wrote:
try this: x ?<- 1:3 y ?<- matrix(1:12, ncol = 3, nrow = 4) y * rep(x, each = nrow(y))
Another way with a function specifically designed for that purpose: sweep(y, 2, x, "*") -- David.
I hope it helps. Best, Dimitris On 4/20/2012 10:51 AM, Vincy Pyne wrote:
Dear R helpers Suppose x<- c(1:3) y<- matrix(1:12, ncol = 3, nrow = 4)
y
? ? [,1] [,2] [,3] [1,] ? ?1 ? ?5 ? ?9 [2,] ? ?2 ? ?6 ? 10 [3,] ? ?3 ? ?7 ? 11 [4,] ? ?4 ? ?8 ? 12 I wish to multiply 1st column of y by first element of x i.e. 1, 2nd column of y by 2nd element of x i.e. 2 an so on. Thus the resultant matrix should be like
z
? ? [,1] ? [,2] ? ?[,3] [1,] ? ?1 ? ?10 ? ?27 [2,] ? ?2 ? ?12 ? ?30 [3,] ? ?3 ? ?14 ? ?33 [4,] ? ?4 ? ?16 ? ?36 When I tried simple multiplication like x*y, y is getting multiplied column-wise
x*z
? ? ?[,1] [,2] [,3] [1,] ? ?1 ? ?5 ? ?9 [2,] ? ?4 ? 12 ? 20 [3,] ? ?9 ? 21 ? 33 [4,] ? 16 ? 32 ? 48 Kindly guide Regards Vincy ? ? ? ?[[alternative HTML version deleted]]
______________________________________________ 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.
-- Dimitris Rizopoulos Assistant Professor Department of Biostatistics Erasmus University Medical Center Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands Tel: +31/(0)10/7043478 Fax: +31/(0)10/7043014 Web: http://www.erasmusmc.nl/biostatistiek/
______________________________________________ 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.
David Winsemius, MD West Hartford, CT
______________________________________________ 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.
Gregory (Greg) L. Snow Ph.D. 538280 at gmail.com