使用循环导出R中的图形

问题描述 投票:0回答:1

我使用R创建了三个具有相同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),我想知道是否有一个循环可以用来完成我想做的任务。

r loops
1个回答
0
投票

如果所有“ 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()
}
© www.soinside.com 2019 - 2024. All rights reserved.