在marrangegrob和ggsave中使用mapply时出错

时间:2019-10-02 17:59:25

标签: r ggplot2

我具有绘图功能,可以将其应用于列表并通过marrangeGrob和ggsave保存:

make_bar_plot = function (x) {
  # ggplot stuff using list x
}
plot_list = lapply(list_for_x, make_bar_plot)

# send to file
ml <- marrangeGrob(plot_list, nrow=4, ncol=3)
ggsave("plots.pdf", ml, width=8.5, height=11, useDingbats=F)

但是当我需要使用mapply传递第二个列表参数时:

make_bar_plot = function (x,y) {
  # ggplot stuff using list x with a list of plot titles y
}
plot_list = mapply(make_bar_plot, list_for_x, list_for_y)

# send to file
ml <- marrangeGrob(plot_list, nrow=4, ncol=3)
ggsave("plots.pdf", ml, width=8.5, height=11, useDingbats=F)

代码给出错误:

Error in `$<-.data.frame`(`*tmp*`, "wrapvp", value = list(x = 0.5, y = 0.5,  :
  replacement has 17 rows, data has 94

此错误在ggsave命令中发生。我找不到关于lapply和mapply输出(两者都说是list)之间有什么区别的更多详细信息,但似乎marrangeGrob处理这两个输出的方式是不同的。

0 个答案:

没有答案