[R] z[i,j] = x[i,j] * y(i+j) ?

Bill.Venables at csiro.au Bill.Venables at csiro.au
Thu Jul 30 06:30:42 CEST 2009


I take it you mean

z[i,j] = x[i,j]*y[i+j-1]

(as you had it z[1,1] = x[1,1]*y[2], whereas your example suggests is should be y[1])

Here is a suggestion:

> z <- x * y[outer(1:nrow(x), 1:ncol(x), "+")-1]
> z
      [,1]  [,2]  [,3]
[1,] 35.20 63.22 17.28
[2,] 50.14 64.80    NA
[3,] 22.68 34.98 10.50
[4,] 29.68 33.60 15.30
>  


Bill Venables
http://www.cmis.csiro.au/bill.venables/ 


-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of glen_b
Sent: Thursday, 30 July 2009 1:57 PM
To: r-help at r-project.org
Subject: [R] z[i,j] = x[i,j] * y(i+j) ?



For the life of me I couldn't work out what to searc

I have an m*n numeric matrix x and a numeric vector y (of length m+n-1)

How do I do a calculation like this?

z[i,j] = x[i,j] * y[i+j] ?


Well, one can write a pair of loops, or write a single loop 
within which we calculate a vector at a time, but ...

is there a "neat" way to do it?

tiny example:
x<-matrix(data=c(32,46,21,28,58,60,33,32,16,NA,10,15),nrow=4)
y<-c(1.1,1.09,1.08,1.06,1.05,1.02)
z<-matrix(nrow=4,ncol=3)

z[,1]=x[,1]*y[1:4]
z[,2]=x[,2]*y[2:5]
z[,3]=x[,3]*y[3:6]
 
which produces:

> x
     [,1] [,2] [,3]
[1,]   32   58   16
[2,]   46   60   NA
[3,]   21   33   10
[4,]   28   32   15

> y
[1] 1.10 1.09 1.08 1.06 1.05 1.02

> z
      [,1]  [,2]  [,3]
[1,] 35.20 63.22 17.28
[2,] 50.14 64.80    NA
[3,] 22.68 34.98 10.50
[4,] 29.68 33.60 15.30

> z/x
     [,1] [,2] [,3]
[1,] 1.10 1.09 1.08
[2,] 1.09 1.08   NA
[3,] 1.08 1.06 1.05
[4,] 1.06 1.05 1.02

(this last to indicate what each element of x was multiplied by to produce
z... well, apart from the NA)

Thanks for any pointers

Glen

-- 
View this message in context: http://www.nabble.com/z-i%2Cj--%3D-x-i%2Cj--*-y%28i%2Bj%29---tp24731799p24731799.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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