Я пытаюсь написать функцию, которая отображает график ggplot facet_wrap
на нескольких страницах. Это просто взломать, поскольку эта функция, похоже, находится в списке функций ggplot2. Я делаю несколько небольших вычислений, чтобы найти количество страниц, которые мне понадобятся, количество строк моего data.frame
, которое мне нужно на странице и т.д. Я уверен, что все это работает.
pdf(filename)
for (i in seq(num_pages)){
slice = seq(((i-1)*num_rows)+1,(i*num_rows))
slice = slice[!(slice > nrow(df.merged))]
df.segment=df.merged[slice,]
p <- ggplot(df.segment, aes(y=mean,x=phenotype))
p <- p + geom_bar(stat="identity",fill="white",colour="black")
p + facet_wrap("ID",scales="free_y",ncol=n_facets,nrow=n_facets)
}
dev.off()
Моя проблема заключается в том, что, обертывая все это в цикле for, подобном этому, между функциями pdf()
и dev.off()
, заключается в том, что цикл for, похоже, не ждет, пока ggplot сделает свою работу, и прорывается через его цикл очень быстро и выводит недопустимый PDF.
Если я установил i = 1
, запустите pdf()
, запустите указанный выше код внутри цикла for, затем установите i=2
, затем запустите код и так далее, пока мне не станет скучно (i=3
), затем поверните выключение устройства, получившийся PDF файл является блестящим.
Есть ли способ, которым я могу заставить цикл for ждать окончания окончательной строки, прежде чем переходить на следующую итерацию?