如何解决尝试在%dopar%中两次使用函数get时在R中获得错误
我有一个名称为“ data_frame”的数据框,我想在使用doParallel库进行计算时使用它。我尝试以下方法:
library(doParallel)
myCluster <- makeCluster(detectCores()-1,type = "PSOCK") # type of cluster
registerDoParallel(myCluster)
system.time({
list_input_tmp <- foreach(i = 1:nrow(get('data_frame'))) %dopar% {
temp = list(function1(get('data_frame')[i,]),get('data_frame')[i,])
}
})
stopCluster(myCluster)
但是我得到了错误
{中的错误: 任务1失败-“未找到对象'data_frame'”时间停止在:0.18 0.06 1.45
但是如果我使用它,它会起作用:
library(doParallel)
myCluster <- makeCluster(detectCores()-1,type = "PSOCK") # type of cluster
registerDoParallel(myCluster)
system.time({
list_input_tmp <- foreach(i = 1:nrow(get('data_frame'))) %dopar% {
temp = list(function1(data_frame[i,])),])
}
})
stopCluster(myCluster)
或
library(doParallel)
myCluster <- makeCluster(detectCores()-1,type = "PSOCK") # type of cluster
registerDoParallel(myCluster)
system.time({
list_input_tmp <- foreach(i = 1:nrow(get(paste0('data_',list_input[3])))) %dopar% {
temp = list(function1(get('data_frame')[i,data_frame[i,])
}
})
stopCluster(myCluster)
有人对这个问题有经验吗?
关于丹
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。