我想遍歷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