У меня есть приведенный ниже кадр данных:
year<-c(2017,2018,2019)
AT1<-c(200,100,0)
AT2<-c(10,100,0)
DT<-data.frame(year,AT1,AT2)
year AT1 AT2
1 2017 200 10
2 2018 100 100
3 2019 0 0
Обратите внимание, что мой фактический набор данных имеет такую форму
, поскольку переменныеот -1 до 12 На основе этого кадра данных я создаю этот график ниже:
library(plotly)
plot_ly(DT, x = ~factor(year), y = ~AT1, name = 'AT1', type = 'scatter', mode = 'lines',
line = list(color = 'rgb(205, 12, 24)', width = 4)) %>%
add_trace(y = ~AT2, name = 'AT2', line = list(color = 'red', width = 4)) %>%
layout(title = "Day 10 Enrollments",
xaxis = list(title = "Years"),
yaxis = list (title = "Count"))
Проблема заключается в том, что в массив данных DT
, который я использую для своего графика, не всегда может входить-исключение из years
- переменные AT1
и AT2
, поскольку они появляются после обработки другого кадра данных.Например, оно может включать AT1
, AT2
и AT4
или только AT2
.Если, например, здесь я добавлю add_trace(y = ~AT2, name = 'AT2', line = list(color = 'red', width = 4)) %>%
, график будет нарушен, поскольку AT3
не существует.На графике я вручную установил эти переменные как y
, но я ищу способ автоматически распознавать, какие переменные у меня есть в моем фрейме данных, и использовать их как y
.