【发布时间】:2020-06-25 11:44:17
【问题描述】:
我正在使用 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]]
...
有谁知道如何抑制这个输出?
非常感谢!
【问题讨论】:
-
一些想法。一:我认为这是
purrr:map中的行为,与期货/并行化无关。二:map返回一个与您映射的列表长度相同的列表。三:不确定这是明智的还是规范的,但也许将您的 future_map 嵌套在另一个函数中,您可以静默返回输出。 -
谢谢迈克尔!我尝试将它嵌套在一个函数中,并在函数本身周围使用 invisible() ,但两者都不起作用。 Walk 有效并抑制输出,但未并行化。我找不到像“future_walk”这样的东西。我发现分配这个列表(名称