ループをベクトル化しようとする中で、私はのouter(X, Y, FUN = "*", ...)
の機能を見つけました。外部製品はどのようにRで動作しますか?
私はステップによって、次の結果ステップを再現する方法を理解しようとしています:私は、次の出力を得る
FUN
引数で
outer()
を使用して
set.seed(1)
b = rnorm(3, 0, 1)
t = rnorm(5)
-
として:
FUN
と
outer()
を使用して
> outer(t, b, "-")
[,1] [,2] [,3]
[1,] -0.9134962 -1.7235934 -0.70432143
[2,] -0.3021132 -1.1122104 -0.09293842
[3,] 0.3317334 -0.4783638 0.54090817
[4,] 0.6206866 -0.1894105 0.82986144
[5,] 3.0311072 2.2210101 3.24028200
*
として引数私が手:
> outer(t, b, "*")
[,1] [,2] [,3]
[1,] 0.964707572 -0.282801545 1.286826317
[2,] 0.581704357 -0.170525137 0.775937183
[3,] 0.184628747 -0.054123443 0.246276838
[4,] 0.003612867 -0.001059103 0.004819215
[5,] -1.506404279 0.441598542 -2.009397175
t %*% t(b)
を実行してouter(t, b, "*")
を再現できますが、outer(t, b, "-")
の処理方法はわかりません。
行列代数の私の知識はかなり限定されたならば、私はそれに行くを与えたいです。あなたは、私を助けてくださいすることができます
- は
FUN
が-
- に設定されている場合を再現し、実際に何をするか
FUN
にいくつかの光を当てますか?
ありがとうございます。
私が理解していることを確かめるために、 'R'の' outer() 'は、生成物を計算するかのようにベクトルを並べ替えます(' y'を転置する)が、 'FUN'引数が指定するものを実際に行います。これは正しいです? –
はい。はい。その通り –
ありがとう。質問が移行されて以来、他のユーザーの読みやすさを向上させるためにいくつかの編集を行いました。 –