我正在使用R 包foreach()
中的函数进行并行计算。foreach
除了那个功能,我认为还需要使用包registerDoMC()
中的功能doMC
。
但是,当我编写DESCRIPTION
文件时,该Imports
部分包含doMC (>= 1.3.0), foreach (>= 1.4.1)
,但是当我运行我的代码时,错误指示:找不到iter
函数。于是,我也包import
了iterators
。
好像还是报错:mclapply()
function is to be used by foreach()
,而且这个函数同时出现在和包parallel
中multicore
。我将这两个包都包含在该Imports
部分中,但是当我运行时search()
,会出现警告:
Warning messages:
1: replacing previous import ‘mclapply’ when loading ‘parallel’
2: replacing previous import ‘mcparallel’ when loading ‘parallel’
3: replacing previous import ‘pvec’ when loading ‘parallel’
这很奇怪:即使我显式地使用了和imports
的包,但在加载自己的包后我仍然无法使用它们的功能......相反,我必须显式运行:iterators
multicore
library(iterators)
library(multicore)
为了在我的包中使用我自己的函数,该函数利用了并行计算。我的包裹写作有什么问题吗?太感谢了!