首页 > 解决方案 > R - 不能在 foreach() 循环中使用 eigen() 函数

问题描述

我发现我无法在 foreach 并行循环中调用 eigen() 函数。这是一个失败的最小示例:

library(doParallel)

registerDoParallel(12)

res <- foreach(s = 1:50, .combine = c)%dopar%{
    M <- matrix(rnorm(10*10), 10, 10)
    M <- M+t(M)
    E <- NULL
    E <- eigen(M)$values
    return(E)
}   

这只是冻结并且永远不会返回任何内容。如果我注释掉 eigen() 行,它可以正常工作,立即返回一个 NULL 向量。

为什么会这样?是否有一些解决方法或替代特征值/向量函数与 foreach 配合得很好?

标签: rforeacheigenvalueeigenvector

解决方案


推荐阅读