通过for循环

时间:2019-07-09 16:04:15

标签: r for-loop pdf plot save

我正在尝试通过遍历数据集列表并将其保存在具有更改名称的多个pdf中来创建多个成对的相关图(来自psych包的pairs.panels是我使用的功能)。它也可以是一个带标题的pdf文件(我无法在pairs.panels中获得main =“ xyz”函数来运行)。 也可以是其他格式(jpeg,png ...任何形式)

我的数据集(这里称为“ df”)具有8个变量,其中之一是分组变量(因此称为“ group”变量)。对于每一组一个图,我想要变量2到7的相关矩阵(我知道这里看起来很糟糕,我模拟数据的技能很糟糕)。数据集(df2)是数据集的列表(此处仅3个),我只是按组划分了数据集df。

我尝试在循环内外使用pdf()函数,使用两个循环,一个用于创建图形,一个用于pdf设备,我尝试制作一个图形列表并使用它...

如果我在括号中使用相应的数字1,2,3等而不是i,则可以运行该图,可以保存该图,这使我对循环有所了解。 如果您对我需要做的事情有某种解释,那就太好了!

# shitty data simulation
set.seed(16)
df <- data.frame(group = rep(letters[1:3], each = 3),
                    x = rnorm(n = 9, mean = 0, sd = 1),
                    y = rnorm(n = 9, mean = 0, sd = 1),
                    z = rnorm(n = 9, mean = 0, sd = 1),
                    a = rnorm(n = 9, mean = 0, sd = 1),
                    b = rnorm(n = 9, mean = 0, sd = 1),
                    d = rnorm(n = 9, mean = 0, sd = 1))

 df2 <- as.list(split(df, df$group))

 for(i in 1:3){ # setting the loop for the pdf device

 pdf(paste("myplot", i, ".pdf"), onefile = F) # opening the device, plots are calles plot1, plot2 etc.

 for(i in 1:length(df2)){
 pairs.panels(df2[[i]][,c(2:7)], stars = TRUE, pch = ".")
 mtext(side = 3, line = 3, df2[[i]]$group) # the only option I manage to get a header in there
 }
dev.off()
}

我要么无法打开文件(有时需要几个小时才能完成,然后我只能得到2个图)。我通常不会收到有关循环的错误消息(只有相关性,但是我已经知道并且某些变量缺少数据,它仍然可以打印图表)。 有时我会得到一个大文件,其中包含多次绘制且没有标题。有时它只是损坏了。

0 个答案:

没有答案