Я пытаюсь не понять external в R. Вот мой тестовый пример:
myarray <- array(data = c(0,5,7,3), dim = c(2,2))
myarray
outer_op <- outer(myarray, myarray, "-")
outer_op
На основании того, что я понял (или я бы сказал, неправильно понял) ) до сих пор каждый элемент в массиве будет связан через FUN, векторизованную функцию, которая в моем тестовом случае является оператором вычитания, со всеми другими элементами в массиве, поэтому каждый раз пара значений. Итак, вот что я бы ожидал, что R напечатает, если бы мне пришлось выполнять внешнюю операцию вручную на листе бумаги:
, , 1, 1
[,1] [,2]
[1,] 0 -7
[2,] -5 -3
, , 2, 1
[,1] [,2]
[1,] -5 2
[2,] 0 -2
, , 1, 2
[,1] [,2]
[1,] -7 0
[2,] -2 -4
, , 2, 2
[,1] [,2]
[1,] -3 4
[2,] 2 0
Что я сделал, так это то, что я взял каждый элемент в position (i, j) = (строка, столбец), и я каждый раз вычитал из одного из других элементов в матрице. Так, например, для первой матрицы (,, 1, 1) вот что я сделал:
0 - 0 = 0 = new element at the first row and first column after outer.
0 - 5 = -5 = new element at the second row and first column after outer.
0 - 7 = -7 = new element at the first row and second column after outer.
0 - 3 = -3 = new element at the second row and second column after outer.
Но, похоже, я не понимаю эту концепцию, так как результат, предоставленный R, является полным разные:
, , 1, 1
[,1] [,2]
[1,] 0 7
[2,] 5 3
, , 2, 1
[,1] [,2]
[1,] -5 2
[2,] 0 -2
, , 1, 2
[,1] [,2]
[1,] -7 0
[2,] -2 -4
, , 2, 2
[,1] [,2]
[1,] -3 4
[2,] 2 0
Так что я не совсем понимаю, как R сделал вычитание между элементами, чтобы получить эти матрицы. Буду признателен за разъяснения.