作爲嘗試向量化循環的一部分,我偶然發現了outer(X, Y, FUN = "*", ...)
函數R
。外部產品如何在R中工作?
我想了解如何重現以下結果一步一步:與FUN
參數
set.seed(1)
b = rnorm(3, 0, 1)
t = rnorm(5)
使用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()
與FUN
論點爲*
我得到:
> 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'參數指定的內容。它是否正確? –
是的。是。那樣 –
謝謝。由於該問題已被遷移,因此我做了一些編輯嘗試改善其他用戶的可讀性。 –