繁体   English   中英

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

[英]Rename objects in for loop in 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就足够了。 我正在犯什么错误? 谢谢大家!

每次从ggplot中对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]]等访问不同的图。

另一种选择是使用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 ...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM