сохранил несколько ggplots в папке с помощью R - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть следующие данные и код

data <- data.frame(trt = c("A", "A", "B", "B", "B", "B", "B", "A", "A", "A"), group = c("G1", "G1", "G1", "G1", "G1", "G2", "G2", "G2", "G2", "G2"), value = c(6.4, 7.2, 6.5, 6.6, 6.2, 7.2, 8.5, 7.3, 7.1, 6.9))

for(i in c(1:2)) {
  savePDFPath <- paste("/Path/Plot/G", i, ".pdf", sep = "")
  pdf(file = savePDFPath)
  dd <- subset(data, group == paste("G", i, sep = ""))
  ggplot(dd, aes(trt, value)) + geom_boxplot()
  dev.off()
}

После выполнения этого кода в папке сохраняются 2 файла pdf.Тем не менее я не могу открыть файлы.Он показывает, что `файл Gx.pdf не может быть открыт.Что не так в моем коде?Спасибо.

  • Работает нормально, если я не заключаю код в цикл for.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Я не уверен на 100%, почему возникает ошибка, но я могу исправить ее, явно напечатав график:

for(i in c(1:2)) {
    savePDFPath <- paste("Plots/G", i, ".pdf", sep = "")
    pdf(file = savePDFPath)
    dd <- subset(data, group == paste("G", i, sep = ""))
    p <- ggplot(dd, aes(trt, value)) + geom_boxplot()
    print(p)
    dev.off()
}
0 голосов
/ 20 сентября 2018

Попробуйте использовать ggsave(), чтобы сохранить график в формате PDF.Я попробовал следующий код, и он работает.

for(i in c(1:2)) {
  savePDFPath <- paste("/Path/Plot/G", i, ".pdf", sep = "")
  dd <- subset(data, group == paste("G", i, sep = ""))
  ggplot(dd, aes(trt, value)) + geom_boxplot()
  ggsave(savePDFPath)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...