【发布时间】:2017-08-22 23:16:01
【问题描述】:
我有三组数据。对于列中的每个观察值,我想将其乘以其他数据集中相应列中的每个观察值。下面的例子有望解释;实际数据大约有 200 行。这是可能吗?我需要使用循环吗?我想在某个时候扩展它以包含更多数据集。
Data set 1
[A] [B] [C]
[1] A1 B1 C1
[2] A2 B2 C2
[3] A3 B3 C3
Data set 2
[L] [M] [N]
[1] L1 M1 N1
[2] L2 M2 N2
[3] L3 M3 N3
Data set 3
[X] [Y] [Z]
[1] X1 Y1 Z1
[2] X2 Y2 Z2
[3] X3 Y3 Z3
Output
[,1] [,2] [,3]
[1,] A1*L1*X1 B1*M1*Y1 C1*N1*Z1
[2,] A1*L1*X2 ... ...
[3,] A1*L1*X3 ... ...
[4,] A1*L2*X1 ... ...
[5,] A1*L2*X2 ... ...
[6,] A1*L2*X3 ... ...
[7,] A1*L3*X1 ... ...
[8,] A1*L3*X2 ... ...
[9,] A1*L3*X3 ... ...
[...]
[27,] A3*L3*X3 ... ...
【问题讨论】:
-
看
?kronecker -
@zx8754 - 我也是这么想的。但所需的输出显示 27 行。
-
我认为他想要 Kronecker 产品,其中每个元素与其他矩阵的每个元素相乘。这类似于
kronecker(matA, kronecker(matB,matC))。 -
@coffeinjunky 可能只是在使用
reduce和kronecker之类的Reduce(kronecker,list(a,b,c)) -
请编辑您的问题并清楚说明您想要实现的目标
标签: r