Сохранение графиков в рабочем каталоге - графики пустые?

Я хочу автоматически записать вывод своих графиков в мой рабочий каталог. Кроме того, я структурировал свой сценарий таким образом, чтобы некоторые этапы вычислений и графики зависели от предыдущей переменной. Таким образом, некоторые этапы вычислений пропускаются, если они больше не нужны или я вычисляю другой сценарий.

Я сталкиваюсь со следующей проблемой: график правильно сохраняется в рабочем каталоге, если я вызываю функцию просто без if состояние. Однако, как только я вызываю функцию внутри if условие, только пустой участок записывается в рабочий каталог.

Следующий воспроизводимый пример демонстрирует проблему (пожалуйста, замените путь рабочего каталога):

##Set WD (!! replace with own path)

setwd("C:/Users/deca/Desktop")

##Initiate packages

install.packages("effects")
install.packages("Cairo")

require(effects)
require(Cairo)

##Initiate data set and condition

varL <- rnorm(100, mean = 1000, sd = 10)
varP <- rnorm(100, mean = 5)
entry <- as.factor(sample(0:1, 100, replace = TRUE))

dat <- data.frame(varL, varP, entry)

condition <- "YES"

##Define regression

hx1 <- glm(entry ~ varL*varP, data = dat, family = binomial(link = "probit"))

##Plot within R graphic device - works perfectly fine

plot(effect("varL:varP", hx1))

##Save plot to WD without if condition - works fine

Cairo(file=as.character("plot1"), 
      type = "png",
      units = "px", 
      width = 715, 
      height = 489, 
      pointsize = 12, 
      dpi="auto")
plot(effect("varL:varP", hx1))
dev.off()

##Save plot to WD with if condition - This is very the problem surfaces

if(condition == "YES") {

    Cairo(file=as.character("plot2"), 
        type = "png",
        units = "px", 
        width = 715, 
        height = 489, 
        pointsize = 12, 
        dpi="auto")
  plot(effect("varL:varP", hx1))
  dev.off()

}

Откуда эта проблема? Как я могу решить это в течение Cairo? Как я могу сохранить участки в WD так что это работает, потенциально используя другое решение, кроме Cairo?

0 ответов

Другие вопросы по тегам