我试图使用lapply循环遍历包含绘图标签的向量列表。该列表包含向量。矢量的第一个元素是图标题,然后是x轴标签,然后是y轴标签。我想避免编写任何for循环。我无法弄清楚如何参考。下面的代码是我能想到的最接近的代码,但它只输出NULL
3次。
library(tidyverse)
plot.labels <- list(c("Title1","Xlab1","ylab1"),c("Title2","Xlab2","ylab1"),c("Title3","Xlab3","ylab1"))
plotter <- function(plotdata=d, xvar=cond,lab = NULL){
ggplot(data = plotdata, aes( x = xvar , y = scale(vowmeanf0) ))+
geom_point()+
labs(title = lab[1],
x = lab[2],
y = lab[3])
}
lapply(plot.labels, function(x){
for(df in 1:length(plot.labels)){
plotter(x[df])
}
} )
lapply看起来应该更像这样。你永远不应该在lapply中循环,因为lapply本质上是for循环开头的包装器。 lapply(plot.labels,function(x)plotter(plotdata = d,xvar = cond,lab = x)) - Mako212
那很有效
library(tidyverse)
plot.labels <- list(c("Title1","Xlab1","Ylab1"),c("Title2","Xlab2","Ylab2"),c("Title3","Xlab3","Ylab3"))
plotter <- function(plotdata = NULL, xvar = NULL ,lab = NULL){
ggplot(data = plotdata, aes( x = xvar , y = scale(vowmeanf0) ))+
geom_point()+
labs(title = lab[1],
x = lab[2],
y = lab[3])
}
lapply(plot.labels, function(x) plotter(plotdata = d, xvar = "cond", lab = x))