Использование lapply для передачи меток в ggplot2 - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь использовать lapply, чтобы просмотреть список векторов, содержащих метки графиков. Список содержит векторы. Первый элемент вектора - это название графика, затем метка оси x, а затем метка оси y. Я хочу избежать написания каких-либо циклов. Я не могу понять, как ссылаться на. Код ниже является самым близким, который я мог придумать, но он просто выводит 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])
  }
} )

1 Ответ

0 голосов
/ 07 сентября 2018

lapply должен выглядеть примерно так. Вы никогда не должны делать циклы внутри lapply, потому что lapply по сути является оберткой для цикла for. lapply (plot.labels, функция (x), плоттер (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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...