2017-06-28 9 views
0

行インデックスと列インデックスのベクトルを持つ行列の値を取得しようとしています。行インデックスと列インデックスを持つ行列の値を取得

M = matrix(rnorm(100),nrow=10,ncol=10) 
set.seed(123) 
row_index = sample(10) # 3 8 4 7 6 1 10 9 2 5 
column_index = sample(10) # 10 5 6 9 1 7 8 4 3 2 

私は

M[row_index, column_index] 

ような何かをしてベクトルとして

M[3,10], M[8,5], ... 

の値を得ることができる方法はありますか?

答えて

1

私たちは、最初の列は、私が提示する解決策があるため、ほとんどの中で、Rに物事の最善の方法ではありません行インデックスおよび第2の列のインデックス

M[cbind(row_index, column_index)] 
0

を表す2列matrixを作成するcbindが必要ベクトル演算に比べてloops are slowの場合しかし、問題のためには、単純にループを実装して行列を索引付けすることができます。データ構造(データフレームや行列など)を提供するオブジェクトを指定しない理由は絶対にありませんが、とにかくループ構造を使用して回避することはできます。

for (i in 1:length(row_index)) { 
print(M[row_index[i], column_index[i]]) 
    } 
関連する問題