在R中重命名for循环中的对象

时间:2015-03-25 02:10:29

标签: r

在学习R时尽可能提供一些简要的指导:

创建for循环绘制一组直方图:

for ( i in 1:10) {
  p <- ggplot(data, aes(x=data[,i], fill=Group)) + 
    geom_histogram(binwidth=200, alpha=.5, position="dodge")
  print(p)
  p[i] <- p
}

我想为p指定不同的名称,以便稍后分别调用这些图。我原以为添加p[i] <- p就足够了。 我犯的错是什么?谢谢大家!

2 个答案:

答案 0 :(得分:3)

每次从ggplot reset p第一次分配到p时,p[i] <-p无法正常工作,因为它在作业的两侧都是同一个对象。你想使用:

pList <- list()
for ( i in 1:10) {
   p <- ggplot(data, aes(x=data[,i], fill=Group)) + 
   geom_histogram(binwidth=200, alpha=.5, position="dodge")
   print(p)
   pList[[i]] <- p
}

然后您可以访问p[[1]]等不同的图表。

答案 1 :(得分:0)

另一种选择是使用assign

for ( i in 1:10) {
                 assign(paste0("plot", i),  ggplot(data, aes(x=data[,i], fill=Group)) +
                                                   geom_histogram(binwidth=200, alpha=.5, position="dodge") )
                 }

这将在您的全球环境中将每个地图创建为不同的对象(plot1plot2plot3 ...)