Использование L oop для экспорта цифр в R - PullRequest
0 голосов
/ 30 мая 2020

Я использовал R для создания 3 отдельных графиков рассеяния с той же переменной X, но с разными результатами (Y1, Y2, Y3), используя:

png(filename="Y1.png")
plot(X,Y1)
dev.off()

png(filename="Y2.png")
plot(X,Y2)
dev.off()

png(filename="Y3.png")
plot(X,Y3)
dev.off()

Теперь, когда мой соавтор хочет еще 15 графиков (Y1, Y2 , Y3, Y4, Y5, ... Y18), мне было интересно, есть ли oop, которые я мог бы использовать для выполнения задачи, которую я пытаюсь выполнить.

1 Ответ

0 голосов
/ 30 мая 2020

Если все переменные «y» являются строго прописными «Y» и числами, тогда

yvars <- ls(pattern="^Y\\d+")
for (yv in yvars) {
  png(filename = paste0(yv, ".png"))
  plot(X, get(yv))
  dev.off()
}

Если они являются переменными во фрейме, то

yvars <- grep("^Y\\d+", colnames(dat), value = TRUE)
for (yv in yvars) {
  png(filename = paste0(yv, ".png")
  plot(X, dat[[yv]])
  dev.off()
}

Вы можете определите переменную yvars любым способом, вручную (например, c(...)) или программно (как указано выше), где баланс между ними зависит от вашего риска (что, если вы «обнаружите» слишком много переменных Y, некоторые из которых не нужны или правильные).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...