在循环中保存 Rdata 和图形
save Rdata and graphs in loops
我需要以类似循环的方式保存一些图表和 Rdata。我已经做了一个简短的例子来说明我需要做什么。我的问题是在我的代码中,图形只是相互覆盖,所以我想我在动态命名它们时遇到了麻烦。
for (i in seq(from = 100, to = 2000, by = 100)){
x <- rnorm(1:3000)
x <- x[seq(from=1, to=length(x),i)]
e=0
d <- matrix(ncol = 1, nrow = 91)
for (f in seq(from=1, to=10,by=0.1)) {
e=e+1
d[e] <- sum(abs(x)^f)
}
x = data.frame(d);
names(x)='V1';
x$V2 = seq(from = 1, to = 10, by = 0.1);
pdf("C:/Users/x.pdf", height=6, width=6)
ggplot(x, aes(x=x$V2, y = x$V1)) +
geom_line(alpha=1)
dev.off()
save.image(file = "output.Rdata")
}
谢谢!
我认为问题在于您每次都写入相同的文件名 "x",而没有在循环的后续迭代中递增文件名。例如:
for (i in 1:10)
{
pdf(file=paste(i, "x.pdf", sep=""))
plot(rnorm(1:10))
dev.off()
}
以上将文件命名为 x1.pdf、x2.pdf、x3.pdf...x10.pdf。如果没有 "i",每次迭代都会写入 x.pdf。
或者,您可以在循环开始时在大括号之前调用 pdf。然后 dev.off() 在最后的大括号之后。
我需要以类似循环的方式保存一些图表和 Rdata。我已经做了一个简短的例子来说明我需要做什么。我的问题是在我的代码中,图形只是相互覆盖,所以我想我在动态命名它们时遇到了麻烦。
for (i in seq(from = 100, to = 2000, by = 100)){
x <- rnorm(1:3000)
x <- x[seq(from=1, to=length(x),i)]
e=0
d <- matrix(ncol = 1, nrow = 91)
for (f in seq(from=1, to=10,by=0.1)) {
e=e+1
d[e] <- sum(abs(x)^f)
}
x = data.frame(d);
names(x)='V1';
x$V2 = seq(from = 1, to = 10, by = 0.1);
pdf("C:/Users/x.pdf", height=6, width=6)
ggplot(x, aes(x=x$V2, y = x$V1)) +
geom_line(alpha=1)
dev.off()
save.image(file = "output.Rdata")
}
谢谢!
我认为问题在于您每次都写入相同的文件名 "x",而没有在循环的后续迭代中递增文件名。例如:
for (i in 1:10)
{
pdf(file=paste(i, "x.pdf", sep=""))
plot(rnorm(1:10))
dev.off()
}
以上将文件命名为 x1.pdf、x2.pdf、x3.pdf...x10.pdf。如果没有 "i",每次迭代都会写入 x.pdf。
或者,您可以在循环开始时在大括号之前调用 pdf。然后 dev.off() 在最后的大括号之后。