次のように2つの数値ベクトルを定義します。
> x <- c(1,2)
> y <- c(1,2)
ここで、たとえば、の要素の追加とそれらのインデックスに基づく2x2マトリックスを埋めたいx
のでy
、最終結果は次のようになります。
[,1] [,2]
[1,] 2 3
[2,] 3 4
ネストされたforループでこれを実現するのは簡単ですが、非常に大きなデータセットでは実行されません。たとえば、これをベクトル化しようとしています
> z <- matrix(nrow=2, ncol=2)
> z[x,y] <- x + y
に割り当てる前に、演算子がベクトルとしてとを+
追加するため、失敗します。インデックスで明示的な添え字を使用すると、同様に失敗します。x
y
z
i
j
> i <- 1:2
> j <- 1:2
> z[i,j] <- x[i] + y[j]
> z
[,1] [,2]
[1,] 2 2
[2,] 4 4
ベクトル化/添字を使用して目的を達成する方法はありますか、またはネストされたforループまたは適用関数の1つに制限されていますか?