【发布时间】:2019-12-31 01:50:15
【问题描述】:
我想使用外部函数在列表中构建各种对象的相似性矩阵,并使用并行化代码以有效的方式进行。换句话说,如何在外部并行化 FUN 矩阵
我在 Windows 上使用 Rstudio 版本 1.2.1335 和 R x64 3.6.1。 这是一个简单的代码示例:
my_list <- list("a"=c("A", "B", "C") , "b"=c("B", "A", "D"), "c"=c("C", "A", "D"), "d"=c("D", "B", "C"))
my_matrix <- outer(my_list, my_list, Vectorize(function(x,y) getsimilarityscore(x,y), vectorize.args = c("x", "y")))
我期待一个具有相似度分数的矩阵。
【问题讨论】:
-
可能有更好的选择,但一种方法是先生成组合,然后您可以使用任何并行实现将您的函数应用于组合。
-
您可以使用嵌套的 foreach 调用。在这里,我认为
outer没有帮助,因为您的函数没有真正矢量化。 -
我想知道
future包是否有助于编写一个可以进入outer()的函数。 -
我之前尝试过 foreach,但它给了我很多矩阵而不是一个。感谢@F.Privé 我尝试了嵌套的 foreach 并且效果很好。
-
@MahmoudFassad 如果其他人有同样的问题,您可以提供您的解决方案。
标签: r parallel-processing outer-join