我具有绘图功能,可以将其应用于列表并通过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
处理这两个输出的方式是不同的。