我想使用 R 'parallel' 库来并行化使用 'ggplot2' 库生成一些图,并且在尝试在 RStudio 中执行此操作时遇到了障碍。在 IDE 中,mclapply 交替冻结会话,或者无法运行 ggsave() 将绘图写入磁盘(没有给出错误或警告)。在 RStudio 之外运行时,它可以 100% 完美运行。我猜 RStudio 对图形设备做了一些讨厌的事情,但我不知道是什么或解决方法(我也尝试过 png()/dev.off(),同样的问题)。这是重现问题的代码:
library(ggplot2)
library(parallel)
mclapply(
0:4,
function(n) {
df <- data.frame(x = runif(10), y = runif(10))
p <- ggplot(df, aes(x, y)) + geom_point()
ggsave(
paste0('mclapply-', n, '.png'),
plot = p,
device = 'png',
width = 4,
height = 4
)
return(n)
}
)
有什么解决方法的建议吗?
编辑:macOS 10.13.4 上的 R 3.4.4 + RStudio 1.1.419 + ggplot2 2.2.1;mclapply() 在 Windows 上恢复 lapply()(不支持)。