Я сгенерировал серию графиков, используя ggplot
и lapply
, например:
makeplot <- function(data){
require(ggplot2)
require(dplyr)
ggplot(data,aes(x=num,y=cat3, fill=cat3)) +
facet_wrap(~cat2)
# etc...
}
plot_list <- lapply(split(data, interaction(data[,c("province","cat1")]), drop = TRUE), makeplot)
Я использую большой фрейм данных, который можно упростить до:
data <- data.frame(
province = sample(c("1","2","3","4")),
cat1 = sample(c("health","education","banks","etc")),
cat2 = sample(c("winter","spring","summer","fall")),
cat3 = sample(c("1 hour","2 hours","4 hours","8 hours")),
Y = sample(1:100))
Это генерирует список графиков примерно так:
Список участков
Я пытаюсь распечатать или ggsave
этот список, как показано здесь: Сохранение графиков в пределах laply .
Однако все попытки экспортировать / напечатать полученные графики, будь то с помощью цикла lapply
или простого оператора print
, возвращают следующую ошибку.
lapply(plot_list,print)
Error: `quo` must be a quosure
Call `rlang::last_error()` to see a backtrace
Боюсь, документация R по опросам не дала полезной информации. Я не разработчик и не очень понимаю большую часть документации. Кто-нибудь может мне помочь?
Первоначально я опубликовал это без особой сложной фильтрации lapply
, происходившей ранее, поскольку это казалось отвлекающим фактором. Я предоставляю это сейчас на случай, если это будет полезно. Для справки фактический фрейм данных head
выглядит так:
~season, ~fac_type, ~trav_cat, ~avg_pc_pop, ~loop,
"Monsoon season", "All financial institutions", "0 to 30 minutes", 0.41395948733655, "Monsoon season All financial institutions",
"Normal season", "All health facilities", "0 to 30 minutes", 0.426855030030894, "Monsoon season All health facilities",
"Other season", "All hospitals", "1 to 2 hours", 0.301967752836744, "Monsoon season All hospitals",
"Monsoon season", "Commercial and development banks", "4 to 8 hours", 0.385783483483483, "Monsoon season Commercial and development banks",
"Normal season", "District Headquarters", "16 to 32 hours", 0.270673828371869, "Monsoon season District Headquarters",
"Other season", "Government hospitals", "1 to 2 hours", 0.263825993199371, "Monsoon season Government hospitals"