Reputation: 1346
I'm sure this question must be trivial but I couldn't find a similar question on stack overflow. I wish to merge array.A
and array.B
so that the result
is an array of arrays of the values of arrays A and B.
For example:
array.A <- array(1:9, dim=c(3,3))
array.B <- array(LETTERS[seq( from = 1, to = 9 )], dim=c(3,3))
> array.A
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> array.B
[,1] [,2] [,3]
[1,] "A" "D" "G"
[2,] "B" "E" "H"
[3,] "C" "F" "I"
And I wish to merge them so that the resulting array would look like this:
> result
[,1] [,2] [,3]
[1,] ["A",1] ["D",4] ["G",7]
[2,] ["B",2] ["E",5] ["H",8]
[3,] ["C",3] ["F",6] ["I",9]
I've tried using cbind
and rbind
but this isn't what I'm looking for (I'm not trying to concatenate the arrays). I can't seem to find a simple solution.
Thanks in advance.
Upvotes: 1
Views: 259
Reputation: 93833
It's not a typical kind of structure, but you can put list
objects inside a matrix
or array
:
out <- array(Map(list, array.A, array.B), dim=dim(array.A) )
# [,1] [,2] [,3]
#[1,] List,2 List,2 List,2
#[2,] List,2 List,2 List,2
#[3,] List,2 List,2 List,2
out[1,1]
#[[1]]
#[[1]][[1]]
#[1] 1
#
#[[1]][[2]]
#[1] "A"
out[1,1][[1]][1]
#[[1]]
#[1] 1
out[1,1][[1]][2]
#[[1]]
#[1] "A"
Upvotes: 2