我正在尝试在R中创建3个不同的.png图像并将它们保存到3个不同的文件 - 一次全部。
以下代码创建1张图像然后停止。为什么不是其他2张图片?
“MatrixFunction”是我自己的函数,需要df,列号,标题。每种测试类型也是数据框的名称。
谢谢。
testtype <- list("Grade4TopBottom", "Grade8TopBottom", "HSPATopBottom")
for(i in testtype){
mypath <- paste("testing", testtype)
png(mypath, width=1336, height=656)
MatrixFunction(get(i), 8:19, "Title")
dev.off()
}
答案 0 :(得分:3)
您一遍又一遍地覆盖您的文件。有一个明显的拼写错误:mypath <- paste("testing", i)
。在这种情况下,您将创建树形文件而不是一个。
答案 1 :(得分:2)
避免for
- R
中的循环。他们臭名昭着。
如果您将方法创建为函数,则可以更轻松地检查错误,并且可以对其应用lapply
或sapply
,
testtype <- list("Grade4TopBottom", "Grade8TopBottom", "HSPATopBottom")
make.image <- function(n) {
obj <- mget(n, ifnotfound=NA)[[1]]
if (is.na(obj)) return(FALSE)
mypath <- paste("testing", n)
png(mypath, width=1336, height=656)
MatrixFunction(obj, 8:19, "Title")
dev.off()
return(TRUE)
}
# test:
make.image('Grade4TopBottom') # should return TRUE
make.image('Nope') # should return FALSE
sapply(testtype, make.image)