Я пытаюсь написать функцию, которая строит график 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 ожидать завершения построения последней строки, прежде чем перейти к следующей итерации?