【发布时间】:2019-07-06 09:40:23
【问题描述】:
在 R 中,我有两个矩阵 X 和 Z,我想要一个 矩阵 W 使得 W 的第 (i) 行包含 X 的第 (i) 行与 Z 的第 (i) 行交互。
W(i) = X(i1)Z(i1) ... X(iJ)Z(i1) ... X(i1)Z(iK) ... X(iJ)Z(iK)
这是一个做我想做的小规模的例子:
set.seed(1)
n <- 3
K <- 2
J <- 3
X <- matrix(rnorm(J*n),ncol=J)
Z <- matrix(rnorm(K*n),ncol=K)
W <- matrix(NA,nrow=n,ncol=K*J)
for (i in 1:n)
{
for (k in 1:K)
{
for (j in 1:J)
{
W[i,j + J*(k-1)] <- X[i,j] * Z[i,k]
}
}
}
有没有聪明的方法来做到这一点?
【问题讨论】:
-
为什么投反对票?问题是否不清楚,或者您只知道之前已经回答过?如果是这样,最好投票以重复关闭。
-
不是我的反对票,但如果您可以包含一个具有所需输出的玩具示例会更有帮助。
-
当然,但是帖子中的代码只是一个玩具示例。该示例实现了我想要的,并且由于 set.seed() 应该是可复制的。如果您对如何改进该示例有任何建议,我会全力以赴。
-
您提供的代码和示例数据没有说明正在做什么。交互这个词相当宽泛。虽然人们可以从上面的代码中理解你想要做什么,但最好用文字(也)准确地解释你想要做什么或者更好,复制和数据当前的样子以及进行操作时会发生什么。 至少这是我的看法。
标签: r matrix interaction