繁体   English   中英

在R上使用foreach〜dopar计算矩阵

[英]Compute Matrix using foreach~dopar on R

library(foreach)
library(doMPI)

m<-matrix(as.integer(0),5,5)

cl <- startMPIcluster(count=4)
registerDoMPI(cl)

foreach(b=1:5)%dopar%
  {
    m[b,]<-c(1:5)
  }

在R上运行较高的代码,我得到较低的结果。

> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    0    0
[2,]    0    0    0    0    0
[3,]    0    0    0    0    0
[4,]    0    0    0    0    0
[5,]    0    0    0    0    0

我怎样才能将矩阵应用于逐行替换?

foreach%dopar%目的不是在创建集群的R进程环境中修改对象。 这些函数的主要用途是进行一些处理并返回上一次求值表达式的值。

所以与其,

mNew <- foreach(b=1:5, .combine = rbind) %dopar%
{
  c(1:5)
}

或者,如果您只想“替换”原始矩阵中的某些元素,

mNew <- foreach(b=1:5, .combine = rbind) %dopar%
{
  c(m[b, seq_len(b)], seq_len(5)[seq_len(5 - b)])
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM