[R] Multiplying elements of vectors
Mariana Martinez-Morales
marianamartinezmorales at gmail.com
Sun Feb 6 16:31:40 CET 2011
Super Phil!!
Thank you very much!!
Mariana
On Sat, Feb 5, 2011 at 8:54 PM, Phil Spector <spector at stat.berkeley.edu> wrote:
> If the seq(5,205) was a typo, and should have been
> seq(5,20,5), then what you're looking for is the outer
> product of x and y:
>
>> x = seq(5,20,5)
>> y = seq(5,20,5)
>> x %o% y
>
> [,1] [,2] [,3] [,4]
> [1,] 25 50 75 100
> [2,] 50 100 150 200
> [3,] 75 150 225 300
> [4,] 100 200 300 400
>>
>> outer(x,y)
>
> [,1] [,2] [,3] [,4]
> [1,] 25 50 75 100
> [2,] 50 100 150 200
> [3,] 75 150 225 300
> [4,] 100 200 300 400
>
> The outer() function will accepts a FUN= argument which defaults to '*'.
>
> - Phil Spector
> Statistical Computing Facility
> Department of Statistics
> UC Berkeley
> spector at stat.berkeley.edu
>
>
> On Sat, 5 Feb 2011, Mariana Martinez-Morales wrote:
>
>> Hi guys:
>>
>> Sorry if this question is very basic. I’m learning basic matrix and
>> vectors multiplication to develop a population matrix model for
>> plants. I’m trying to multiply the elements of two vectors (each of
>> the “x” values by each of the “y” values) to obtain a square matrix of
>> xy values.
>>
>> f.e.
>> x<-seq(5,205)
>> y<-seq(5,20,5)
>> stages<-c(“Sdl”, “Juv”, “Ad1”, “Ad2”)
>>
>> If I just multiply xy as a matrix
>> xy<-matrix(x,y,nrow=4,ncol=4,dimnames=list(stages,stages))
>>
>> I obtain this
>>
>> xy
>> Sdl Juv A1 A2
>> Sdl 5 10 15 20
>> Juv 5 10 15 20
>> A1 5 10 15 20
>> A2 5 10 15 20
>>
>> but what I want to obtain is this matrix
>>
>> Sdl Juv A1 A2
>> Sdl 25 50 75 100
>> Juv 50 100 150 200
>> A1 75 50 225 300
>> A2 100 200 300 400
>>
>> ______________________________________________
>> 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.
>
More information about the R-help
mailing list