【发布时间】:2016-11-10 10:24:41
【问题描述】:
我有一千多个 matlab 文件要读入 R。我使用 R.matlab 包来读取它们,我想并行操作。
但是,一旦我调用循环(我从所有 .mat 文件生成单个数据集)我得到一个错误:
{ 中的错误:任务 1 失败 - “不可能遇到函数 "readMat""
(我翻译了“”之间的错误部分,因为我的R不是英文的)
没有 foreach 命令,一切都很好,但时间太长了。这是代码
library(R.matlab)
library(plyr)
library(foreach)
library(doParallel)
a = list.files()
data <- readMat(a[1])
for(j in 2:length(a)) {
data1 <- readMat(a[j])
if (is.null(data1)==FALSE) {
data <- rbind.fill(data,data1)
}}
print(j)
}
使用 foreach 命令我得到了上述错误。代码如下:
library(R.matlab)
library(plyr)
library(foreach)
library(doParallel)
cl<-makeCluster(8)
registerDoParallel(cl)
a = list.files()
data <- readMat(a[1])
foreach(j = 2:length(a)) %dopar% {
data1 <- readMat(a[j])
if (is.null(data1)==FALSE) {
data <- rbind.fill(data,data1)
}}
print(j)
}
是不是说foreach和readMat不能一起用?
【问题讨论】:
-
您是否忘记关闭
%dopar%之前的第二组括号? -
ops,一个错字……但它在代码中被关闭了。
标签: r file-io foreach mat-file