см. Пример с игрушкой ниже, который воспроизводит ошибку.
Оператор print внутри цикла работает как положено, и создаются 3 различные диаграммы.
Однако, когда "lst" запускается послеВ цикле я ожидал, что будут отображаться те же 3 различных диаграммы, но я просто получаю 3 копии одного (третьего) графика.
("get ()" работает, когда используется динамически выбранный график, но сэто в списке, запутывает это.)
library(plotly)
lst <- list()
cnt <- 1
for(bar in c("Sepal.Width", "Petal.Length", "Petal.Width")){
lst[[cnt]] <- plot_ly(data = iris,
x = ~Sepal.Length,
y = ~get(bar),
type = "scatter",
mode = "markers")
print(lst[[cnt]] %>% layout(title = paste(bar, "printed in loop")))
cnt <- cnt + 1
}
lst
Изменение "~ get (bar)" на ниже решает это.Буду благодарен за объяснение.
y = as.formula(paste0("~", bar))