我想遍历R中列表中元素的成对组合,然后执行一个使用该组合作为输入的函数。 (1)定义三个矩阵,(2)将它们组合成一个包含矩阵的列表作为元素,然后(3)想要计算在这个最小的例子中的元素组合的点积列表(即矩阵1对矩阵2和矩阵2对矩阵3)。在列表中的元素组合上应用一个函数
set.seed
m1 = as.matrix(replicate(2, rnorm(2)))
m2 = as.matrix(replicate(2, rnorm(2)))
m3 = as.matrix(replicate(2, rnorm(2)))
matrix.list = list(m1, m2, m3)
dot.prod = function(matrix.x, matrix.y){
return(matrix.x %*% matrix.y)
}
到目前为止我有以下有matrix.list的所有组合作为dot.prod输入(),使用一个嵌套循环。
for (i in 1:length(matrix.list)){
for (j in 1:length(matrix.list)){
print(dot.prod(matrix.list[[i]], matrix.list[[j]]))
}
}
是否有可能通过使用R中的组合函数(如combn())来做到这一点?我会非常感谢任何建议。
编辑:函数本身并不重要 - 我想知道如何作为输入使用元素的组合,从列表中的任何一个R函数
你能提供一个可重复的例子(刚加入'set.seed'顶部)和展这个例子所需的输出?我不完全清楚你最终想要什么样的结构以及你开始的结构。 – lmo