0

我正在使用 future_map 创建几个图,在其中迭代变量列表并将每个变量的 png 文件输出/保存到文件夹中。所以没有需要在控制台或“绘图”窗格中显示的输出。

函数的绘图部分:

  ggplot(aes(sample = value,
               color = key)) +
    stat_qq(alpha = 0.8, size = 0.5) +
    theme_light() +
    theme(legend.position = "none")  +
    stat_qq_line() +
    facet_wrap(~key,
               ncol = 4) +
    ggtitle(.var) +
    ggsave(filename = here::here(paste0(.path,
                                        .var,
                                        ".png")),
           units = "cm",
           width = 25,
           height = 10)}

我如何映射函数:

plan(multiprocess(workers = 10))
future_map(names_list,
           ~check_dists(df_lips_imputed, .x, "doc/distributions/testing2/"),
           verbose = FALSE)

但是,在创建所有文件之后,我可以看到它们在文件夹中,这是缓慢打印的(需要一段时间,~1k 次迭代):

[[1]]

[[2]]

[[3]]

...

有谁知道如何抑制这个输出?

非常感谢!

4

2 回答 2

0

如果安装furrrwith的开发版本

devtools::install_github("DavisVaughan/furrr")

然后,您可以使用future_walk,其行为类似于walkdo 与map. 由于walk该函数具有副作用,因此返回值只是输入。

于 2020-03-16T14:59:36.623 回答
0

我遇到了同样的问题。我不确定这是否会改变最后打印出列表元素所需的时间,但如果您将future_map调用保存为一次性变量,它会将输出保存在该变量中,而不是打印出来并阻塞您的控制台或日志文件:

x <- future_map(names_list,
                ~check_dists(df_lips_imputed, .x, "doc/distributions/testing2/"),
                verbose = FALSE)
于 2021-11-10T23:12:03.577 回答