[R] Matrix element-by-element multiplication
Steven Yen
syen04 at gmail.com
Thu Jan 8 00:30:28 CET 2015
Thank you both. Both John and Peter's suggestions work great!!
At 06:17 PM 1/7/2015, John McKown wrote:
>On Wed, Jan 7, 2015 at 5:05 PM, Steven Yen
><<mailto:syen04 at gmail.com>syen04 at gmail.com> wrote:
>I like to multiple the first and second column
>of a 10 x 3 matrix by 100. The following did not
>work. I need this in an operation with a much larger scale. Any help?
>
>aa<-matrix(1:30,nrow=10,ncol=3); aa
>bb<-matrix(c(100,100,1),nrow=1,ncol=3); bb
>dim(aa)
>dim(bb)
>aa*bb
>
>Results:
>
> > aa<-matrix(1:30,nrow=10,ncol=3); aa
>Â Â Â [,1] [,2] [,3]
>Â [1,]Â Â 1Â Â 11Â Â 21
>Â [2,]Â Â 2Â Â 12Â Â 22
>Â [3,]Â Â 3Â Â 13Â Â 23
>Â [4,]Â Â 4Â Â 14Â Â 24
>Â [5,]Â Â 5Â Â 15Â Â 25
>Â [6,]Â Â 6Â Â 16Â Â 26
>Â [7,]Â Â 7Â Â 17Â Â 27
>Â [8,]Â Â 8Â Â 18Â Â 28
>Â [9,]Â Â 9Â Â 19Â Â 29
>[10,]Â Â 10Â Â 20Â Â 30
> > bb<-matrix(c(100,100,1),nrow=1,ncol=3); bb
>Â Â Â [,1] [,2] [,3]
>[1,]Â 100Â 100Â Â 1
> > dim(aa)
>[1] 10Â 3
> > dim(bb)
>[1] 1 3
> > aa*bb
>Error in aa * bb : non-conformable arrays
>
> >
>
>
>âAssuming that this is exactly what you want to do, thenÂ
>
>aa[,1:2]<-aa[,1:2]*100;
>
>transcript:
>
> > aa<-matrix(1:30,nrow=10,ncol=3);
> > aa
> [,1] [,2] [,3]
> [1,] 1 11 21
> [2,] 2 12 22
> [3,] 3 13 23
> [4,] 4 14 24
> [5,] 5 15 25
> [6,] 6 16 26
> [7,] 7 17 27
> [8,] 8 18 28
> [9,] 9 19 29
>[10,] 10 20 30
> > aa[,1:2]<-aa[,1:2]*100
> > aa
> [,1] [,2] [,3]
> [1,] 100 1100 21
> [2,] 200 1200 22
> [3,] 300 1300 23
> [4,] 400 1400 24
> [5,] 500 1500 25
> [6,] 600 1600 26
> [7,] 700 1700 27
> [8,] 800 1800 28
> [9,] 900 1900 29
>[10,] 1000 2000 30
>
> >
>â
>Â
>
>--
>â
>While a transcendent vocabulary is laudable, one
>must be eternally careful so that the calculated
>objective of communication does not become
>ensconced in obscurity. In other words, eschew obfuscation.
>
>111,111,111 x 111,111,111 = 12,345,678,987,654,321
>
>Maranatha! <><
>John McKown
[[alternative HTML version deleted]]
More information about the R-help
mailing list