繁体   English   中英

如何在 R 中使用 for 循环来创建多个图

[英]How to use a for loop in R to create multiple plots

我有以下代码,它工作正常,但我想知道最后 4 行是否可以使用 for 循环运行? 鉴于数字字母组合,我不确定如何对此进行编码。

 library(ggpubr)
 set.seed(12345)
 df1 = data.frame(a=c(rep("a",8), rep("b",5), rep("c",7), rep("d",10)), 
      b=rnorm(30, 6, 2), 
      c=rnorm(30, 12, 3.5), 
      d=rnorm(30, 8, 3),
      e=rnorm(30, 4, 1),
      f=rnorm(30, 16, 6)
      )
 plot1 <- ggscatter (df1, x="b", y="c")
 plot2 <- ggscatter (df1, x="b", y="d")
 plot3 <- ggscatter (df1, x="b", y="e")
 plot4 <- ggscatter (df1, x="b", y="f")

您可以创建要绘制的列名称向量,然后使用lapply

library(ggpubr)
cols <- c('c', 'd', 'e', 'f')
#Or use
cols <- names(df1)[-c(1:2)]

list_plots <- lapply(cols, function(x) ggscatter(df1, 'b', x))

还有一个for循环:

list_plots <- vector('list', length(cols))

for(i in seq_along(cols)) {
  list_plots[[i]] <- ggscatter(df1, 'b', cols[i])
}

list_plots将包含可以访问每个单独绘图的绘图列表,例如list_plots[[1]]list_plots[[2]]等。

暂无
暂无

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

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