Re: [R] match lists

2006-10-31 Thread Gabor Grothendieck
Try this:

A <- list(matrix(c(2,3,3,1,2,2), 3, dimnames = list(NULL, letters[1:2])),
  matrix(c(3,3,2,5,1,3), 3, dimnames = list(NULL, letters[3:4])))

B <- list(matrix(c(1:5, 20*(1:5), 10+20*(1:5)), 5,
 dimnames = list(NULL, letters[5:7])),
  matrix(c(1:5, 10*(1:5), 10+10*(1:5)), 5,
 dimnames = list(NULL, letters[8:10])))

lapply(1:2, function(i) lapply(1:2, function(j) B[[i]][A[[i]][,j],]))



On 10/29/06, Heymans, MW <[EMAIL PROTECTED]> wrote:
> Dear list,
>
> I have this problem, please your advice.
>
> I have list A that contains two matrix elements:
> [[1]]
> a b
> [1,] 2 1
> [2,] 3 2
> [3,] 3 2
> [[2]]
> c d
> [1,] 3 5
> [2,] 3 1
> [3,] 2 3
>
> and list B, that also contains 2 matrices:
> [[1]]
> e   f   g
> [1,] 1  20  30
> [2,] 2  40  50
> [3,] 3  60  70
> [4,] 4  80  90
> [5,] 5 100 110
> [[2]]
> h  i  j
> [1,] 1 10 20
> [2,] 2 20 30
> [3,] 3 30 40
> [4,] 4 40 50
> [5,] 5 50 60
>
> Now I want to match each column of list A with each row of list B in such a 
> way that element 1 of list A corresponds to element 1 of list B (and element 
> 2 of A with 2 of B).
> So, in total there will be 4 new matrices, 1 for each column of list A. For 
> example, for column a of list A the new matrix will be:
>
> 2  40  50
> 3  60  70
> 3  60  70
>
> thanks,
> Martijn
> VUmc
> Amsterdam
>
>
>[[alternative HTML version deleted]]
>
> __
> R-help@stat.math.ethz.ch 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.
>

__
R-help@stat.math.ethz.ch 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.


Re: [R] match lists

2006-10-30 Thread bogdan romocea
What is it that you don't know how to do? Loop over the matrices from
the 2 lists and merge them two by two, for example
AB <- list() ; id <- 1
for (i in 1:length(A)) for (j in 1:length(B)) {
   AB[[id]] <- merge(A[[i]],B[[j]],...)
   id <- id + 1
}
To better keep track of who's who, you may want to set up A and B as
named lists, and replace id with
paste(names(A)[i],names(B)[j]).


> -Original Message-
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Heymans, MW
> Sent: Sunday, October 29, 2006 6:35 PM
> To: r-help@stat.math.ethz.ch
> Subject: [R] match lists
>
> Dear list,
>
> I have this problem, please your advice.
>
> I have list A that contains two matrix elements:
> [[1]]
>  a b
> [1,] 2 1
> [2,] 3 2
> [3,] 3 2
> [[2]]
>  c d
> [1,] 3 5
> [2,] 3 1
> [3,] 2 3
>
> and list B, that also contains 2 matrices:
> [[1]]
>  e   f   g
> [1,] 1  20  30
> [2,] 2  40  50
> [3,] 3  60  70
> [4,] 4  80  90
> [5,] 5 100 110
> [[2]]
>  h  i  j
> [1,] 1 10 20
> [2,] 2 20 30
> [3,] 3 30 40
> [4,] 4 40 50
> [5,] 5 50 60
>
> Now I want to match each column of list A with each row of
> list B in such a way that element 1 of list A corresponds to
> element 1 of list B (and element 2 of A with 2 of B).
> So, in total there will be 4 new matrices, 1 for each column
> of list A. For example, for column a of list A the new matrix will be:
>
> 2  40  50
> 3  60  70
> 3  60  70
>
> thanks,
> Martijn
> VUmc
> Amsterdam
>
>
>   [[alternative HTML version deleted]]
>
> __
> R-help@stat.math.ethz.ch 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.
>

__
R-help@stat.math.ethz.ch 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.


[R] match lists

2006-10-30 Thread Heymans, MW
Dear list,
 
I have this problem, please your advice.
 
I have list A that contains two matrix elements:
[[1]]
 a b
[1,] 2 1
[2,] 3 2
[3,] 3 2
[[2]]
 c d
[1,] 3 5
[2,] 3 1
[3,] 2 3
 
and list B, that also contains 2 matrices:
[[1]]
 e   f   g
[1,] 1  20  30
[2,] 2  40  50
[3,] 3  60  70
[4,] 4  80  90
[5,] 5 100 110
[[2]]
 h  i  j
[1,] 1 10 20
[2,] 2 20 30
[3,] 3 30 40
[4,] 4 40 50
[5,] 5 50 60
 
Now I want to match each column of list A with each row of list B in such a way 
that element 1 of list A corresponds to element 1 of list B (and element 2 of A 
with 2 of B).
So, in total there will be 4 new matrices, 1 for each column of list A. For 
example, for column a of list A the new matrix will be:
 
2  40  50
3  60  70
3  60  70 

thanks,
Martijn
VUmc
Amsterdam
 

[[alternative HTML version deleted]]

__
R-help@stat.math.ethz.ch 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.