Я пытаюсь создать несколько графиков графика разброса в ggplot, которые имеют одинаковую структуру, но с другим значением Y. Мне нужно, чтобы они были отдельными (и, следовательно, не использовали facet_wrap), потому что на более позднем этапе я использую grid_arrange для размещения различных комбинаций графиков на одном макете.
Из-за этого мне нужно создать новые имена для каждого графика, которые отражают отображаемое значение y. Ниже приведен пример кода, где month - это переменная на оси x, и я хочу три отдельных графика месяца против трех дополнительных переменных (lag1_var, lag3_var и lag9_var).
df <- data.frame (month= c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), 
                lag1_var=  c (10, 20, 30, 40, 10, 40, 30, 50, 70, 90, 100, 100),
                lag3_var= c(90, 70, 50, 40, 70, 50, 20, 50, 70, 90, 10, 10),
                lag9_var = c(50, 20,90, 100, 90, 10, 40, 90, 100, 20, 30, 70))
Мой подход заключался в создании списка значений, которые отличаются между значениями y и циклом над этим списком, как показано ниже:
loop.list <- c("1", "3", "9")
for (val in loop.list) {
  yval<- paste0("lag", val, "_var")
  ptitle <-paste0("graph plot lag", val, "_Var")
  assign(paste0("plot", val), ggplot(data=df, aes(x=month, y=get(yval))) 
+geom_point(color="red", size=2) + ggtitle(ptitle))
    }
когда я это делаю, я получаю три сюжета с тремя разными именами (plot1, plot3, plot9) и правильными заголовками (так что сюжет 1 имеет заголовок "график графика lag1", а график 3 имеет заголовок "graph plot lag3", и т.д.), но все они одинаковые. Таким образом, цикл работает для названия сюжета и названия сюжета, но не для значения y. Он просто выводит значения из последнего цикла (для переменной lag9_var).
Я не могу понять, почему это происходит, и почему это происходит только с Y-значением, а не с названием или названием. Я всегда программировал в SAS и новичок в R, поэтому я думаю, что приближаюсь к этому из перспективы SAS, вместо того, чтобы думать об этом по-разному.
Примечание: в приведенном выше коде я создаю объекты "yval" и "ptitle" вне инструкции ggplot, но только для устранения неполадок. то же самое происходит, если я включаю их в инструкцию ggplot, как показано ниже:
 for (val in loop.list) {
      assign(paste0("plot", val), ggplot(data=df,aes(x=month,y=get(paste0("lag", val, "_var")))) + 
    geom_point(color="red", size=2) + 
    ggtitle(paste0("graph plot lag", val, "_Var")))
        }
Спасибо за помощь!
