如何解决如何在R中使用for循环创建多个图
我有以下代码,效果很好,但是我想知道是否可以使用for循环运行最后4行?考虑到数字和字母的组合,我不确定如何编写代码。
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,y="d")
plot3 <- ggscatter (df1,y="e")
plot4 <- ggscatter (df1,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,cols[i])
}
list_plots
包含一个绘图列表,可以在其中访问每个单独的绘图,例如list_plots[[1]]
,list_plots[[2]]
等。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。