我注意到我无法解释在ggplot中使用for循环的某些事情。我知道,您不应将ggplot用于循环,但应切换为长格式。 但是,以下内容仍然很奇怪且无法解释。这是我的示例:
library(data.table)
library(ggplot2)
plouf <- data.table(ID = rep(LETTERS[1:2],each = 10), time = rep(1:10,2), exc1 = rep(c(1,1,rep(0,8)),2), exc2 = rep(c(0,0,0,1,1,1,rep(0,4)),2) )
excvec <- c("exc1","exc2")
做我想要的情节的正确方法是:
dataplot <- melt(plouf,measure.vars = excvec)
ggplot(dataplot,aes(time,value))+
geom_line(aes(color = as.factor(variable)))+
facet_wrap(~ID)
现在,如果我想使用for循环,我只需绘制最后一列:
p <- ggplot(plouf)
for(i in 1:2)
{
p <- p + geom_line(aes(time,get(excvec[i]),color = excvec[i]))
}
p + facet_wrap(~ID)
同时手动执行相同的循环!
p <- ggplot(plouf)
p <- p + geom_line(aes(time,get(excvec[1]),color = excvec[1]))
p <- p + geom_line(aes(time,get(excvec[2]),color = excvec[2]))
p + facet_wrap(~ID)
在这里,我不明白:for循环应该做完全相同的事情,但事实并非如此。为什么?