经过大量编辑和一些有用的评论......
我想遍历四个文件,并在同一页面上的四个不同图中绘制每个文件中的数据。我需要对 的每个值执行此操作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]))
}
@eipi10 已在评论中正确识别出问题:simdata[,laneCombination]
导致范围问题。但是,他/她的评论中引用的 SO 问题中的解决方案(通过变量编号在 aes 中寻址 x 和 y)似乎无法解决问题。我需要遍历我的任务的列号。