R:合并两个大小相等的数组

时间:2016-10-04 06:10:12

标签: arrays r

我确定这个问题必须是微不足道的,但我在堆栈溢出时找不到类似的问题。我希望合并array.Aarray.B,以便result是数组A和B的值数组数组。

例如:

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" 

我希望合并它们,以便生成的数组看起来像这样:

> 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]

我尝试过使用cbindrbind,但这不是我想要的(我不是要连接数组)。我似乎无法找到一个简单的解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:2)

它不是一种典型的结构,但您可以将list个对象放在matrixarray中:

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"