首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用虚拟图替换NAs图列表中的NAs。

用虚拟图替换NAs图列表中的NAs。
EN

Stack Overflow用户
提问于 2021-04-14 19:52:50
回答 1查看 100关注 0票数 2

我有一个想要传递给patchwork::wrap_plots的地块列表:

代码语言:javascript
复制
library(tidyverse)
library(patchwork)

# plots with na
dummy_plot <- ggplot() + theme_void()
p <- ggplot(mtcars, aes(mpg, cyl)) + geom_point()
plots <- list(p, p, NA)
patchwork::wrap_plots(plots)

给出错误:

错误:只知道如何添加ggplots和/或grobs

因此,我想对我的列表进行预处理,用上面空白的虚拟图替换任何NA。

预期结果:

代码语言:javascript
复制
plots <- list(p, p, NA)
... some magic r code here to replace NA with dummy plot ...
# now plots looks like this    
plots <- list(p, p, dummy_plot)

现在,我可以传递到没有错误的情况下包装情节:

如何将列表中NA的实例替换为我的虚拟情节?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-14 20:31:58

您可以遍历plots并检查元素是否为identicalNA。如果是,请用dummy_plot替换

代码语言:javascript
复制
plots[sapply(plots, function(x) identical(x, NA))] <- list(dummy_plot)
patchwork::wrap_plots(plots)
# grid.rect(gp = gpar(fill = NA))

结果

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67098268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档