2016-10-04 22 views
1

この質問は簡単なものでなければならないと確信していますが、スタックオーバーフローで同様の質問が見つかりませんでした。私はresultは、例えば配列AとBR:同じサイズの2つの配列をマージする

の値の配列の配列となるようarray.Aarray.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

ないあなたが正確に出力として望むものを確認してください - アウト 'である< - 配列(マップ(C 、array.A、array.B)、dim = dim(array.A)) 'これで' out [1,1] 'に2つの値を入れることができます。 – thelatemail

+0

コメントありがとうございます。それは私が2つの値の間で選択できる必要があるけれども、かなり後ろのものです。 '' A ''の場合は 'out [1,1] [1]'、 '' 1 'の場合は 'out [1,1] [2]'のようなものです。これが可能かどうかわかりませんか? –

+1

もちろん、[1,1] [1] [1]はそれを行うべきです。 – thelatemail

答えて

2

それは構造の一般的な種類ではありませんが、あなたはmatrixまたはarraylistオブジェクトを置くことができます。

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" 
+0

ありがとうございました!これは私の質問に完全に答えるが、私の実際のデータでは、私の目標を達成するためのかなり厄介な方法であった(私はまだRの初心者である)ので、この方法(配列をマージする)を放棄したということを言及すべきである。 –

関連する問題