例如,写
lapply <- function(X, FUN, ...) mclapply(X, FUN, ..., mc.cores = 24L)
而不是在整个代码中编写mclapply
。这样,如果其他人想要在Windows笔记本电脑上运行代码,他可以简单地评论函数定义。
这种方法有什么问题吗?
答案 0 :(得分:3)
代码的主要问题在于它无法在Windows或非Windows上运行,因此无论操作系统如何,都会强制用户进行编辑。正如@Alex在评论中提到的那样,您可以检测操作系统,并在mc.cores
在Windows下运行的情况下将R
设置为1:
if (Sys.info()[['sysname']] == 'Windows') {
num.cores <- 1 # use only one core on Windows
} else {
num.cores <- 24L # use multiple cores if Mac or Linux
}
mclapply(X, FUN, ..., mc.cores = num.cores) # make call using correct number of cores