经过大量编辑和一些有用的评论...
我想循环浏览四个文件,并在同一页面上的四个不同图中绘制每个文件中的数据。我需要为laneCombination
的每个值(列号)执行此操作。使用下面的代码(错误的最小示例),我得到了所需的结果,除了图包含相同的数据。
library(ggplot2)
library(grid)
library(gridExtra)
plots <- list()
for (laneCombination in 3:3) {
for (depVar in 1:4) {
simdata <- data.frame(cond = rep(c("A", "B"), each=10),
xvar = 1:20,
yvar = 1:20 + rnorm(20,sd=3))
plots[[depVar]] <- ggplot(simdata, aes(xvar, simdata[,laneCombination]), environment = environment()) +
geom_point() + geom_line() + labs(x="Duration", y=depVar) + theme(legend.position="none")
}
grid.arrange(plots[[1]], plots[[2]], plots[[3]], plots[[4]], ncol = 1, main = colnames(simdata[laneCombination]))
}
前三个图被最后一个覆盖: results http://i60.tinypic.com/2yulvk6.png
@ eipi10已正确识别评论中的问题:simdata[,laneCombination]
导致范围问题。但是,他/她的评论(Addressing x and y in aes by variable number)中引用的SO问题中的解决方案似乎并未解决问题。我需要遍历列数字来完成我的任务。