我正在尝试使用 .WAV
函数阅读多个 readWave()
文件进行处理。
一切正常,直到我按顺序导入每个.WAV
文件,然后逐个处理它们。但是,在尝试使其以并行执行模式运行时,我尝试使用 foreach(){...}
并运行代码。它说
Error in { : task 1 failed - "could not find function "readWave""
有人可以帮忙吗? 改变为foreach没有其他变化。
foreach ( i = 1:nfiles, combine = cbind ) %dopar% {
input_file_name = filist[1]
input_wave_file = readWave( input_file_name )
Preprocessing( input_file_name ) # this is my later defined fun()
}
答案 0 :(得分:1)
这种错误消息几乎总是意味着您需要使用foreach .packages
选项(使工作人员加载包)或.export
选项(将本地函数发送给工作人员) )。在这种情况下,工作人员可能需要加载定义tuneR
函数的readWave
包:
foreach (i=1:nfiles, combine=cbind, .packages='tuneR') %dopar% {
input_file_name = filist[1]
input_wave_file = readWave(input_file_name )
Preprocessing(input_file_name)
}