Сохранение списка участков по их именам ()
Допустим, у меня есть список созданных мной графиков.
library(ggplot2)
plots <- list()
plots$a <- ggplot(cars, aes(speed, dist)) + geom_point()
plots$b <- ggplot(cars, aes(speed)) + geom_histogram()
plots$c <- ggplot(cars, aes(dist)) + geom_histogram()
Теперь я хотел бы сохранить все это, пометив каждый из них соответствующим элементом имен (графиков).
lapply(plots,
function(x) {
ggsave(filename=paste(...,".jpeg",sep=""), plot=x)
dev.off()
}
)
Что бы я заменил "..." на такой, чтобы в моем рабочем каталоге графики были сохранены как:
a.jpeg
b.jpeg
c.jpeg
1 ответ
Решение
Вероятно, вам нужно передать имена списка:
lapply(names(plots),
function(x)ggsave(filename=paste(x,".jpeg",sep=""), plot=plots[[x]]))
kohske сенсационный! Ниже
purrr 0.3.4
версия для тех, кто предпочитает работать в
tidyverse
. Также создается временный каталог для хранения графиков, так как
ggsave
по умолчанию сохраняется в рабочий каталог.
map(names(plots), function(.x) {
ggsave(
path = "tmp/",
filename = paste0(.x, ".png"),
plot = plots[[.x]]
)
})