Я пытаюсь добавить номера страниц в файл pdf, сгенерированный с использованием графика в R и сохраненный в формате pdf. Я использую d_pply
в data.frame
, в котором я использую команду plot.Добавление номеров страниц в pdf-файл, созданный R
Я думал, что d_pply
поможет мне избежать цикла for
. Ниже приведен образец из моих исходных данных со многими другими факторами.
data1 <- structure(list(fact = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L
), .Label = c("A", "B", "C"), class = "factor"), speed = c(10.56,
11.94, 13.61, 15, 16.67, 18.06, 19.44, 20.28, 21.11, 21.67, 22.5,
23.06, 23.61, 24.44, 25, 25.56, 26.11, 26.94, 27.5, 15.83, 16.67,
17.5, 18.06, 18.89, 19.72, 20.56, 21.11, 21.94, 22.5, 23.33,
23.89, 24.44, 25, 25.56, 26.11, 26.67, 27.22, 8.61, 10.28, 11.94,
13.61, 15, 16.39, 17.5, 18.89, 19.72, 20.83, 21.67, 22.22, 22.5,
23.06, 23.61, 23.89, 23.89, 23.61)), .Names = c("fact", "speed"
), class = "data.frame", row.names = c(NA, -55L))
Я пытался выполнить задачу с помощью глобального индекса. Но я ищу эффективный способ сделать это. This one не совсем мне помог.
index1 <<- 0
plot_pg <- function(x)
{ index1 <<- index1+1
plot(x$speed,main=paste0('pg# ',index1))
}
genplot <- function(df1,filename1)
{
pdfNAME <- paste0(name1,'.pdf')
pdf(pdfNAME)
d_ply(df1,c('fact'),function(x) plot_pg(x))
dev.off()
}
genplot(data1,'data1Plots')
Update
Я должен упомянуть, что я бы разделив мой data.frame
более чем одним variables..something как ddply(data,c('var1','var2'),function(x) MyplotFunc(x))
Что случилось с циклом for? – joran
Приведенные здесь примеры показывают только два фактора, но у меня на самом деле около 480 из них, и это может также увеличиться в будущем. Вы думаете, что цикл 'for' будет эффективным? Во всяком случае, как вы это сделаете, используя цикл 'for', не используя семейство функций 'apply'. –