Как построить столбцы из реактивного элемента в Shiny - PullRequest
0 голосов
/ 18 февраля 2019

Это мое первое приложение, которое я делаю с использованием Shiny, и у меня возникли некоторые проблемы с моим реактивным сюжетом.Моя конечная цель - использовать раскрывающееся меню, чтобы выбрать клиент AD, а затем отобразить точки данных из столбцов (Date, ModResult) на диаграмме рассеяния при нажатии кнопки «Обновить».Прямо сейчас возвращается «Ошибка в оси: ни одно местоположение не является конечным».Фрейм данных labData имеет 7 столбцов: «Client.Name» - это столбец 1, «Date» - это столбец 4, а «ModResult» - это столбец 7. Пожалуйста, дайте мне знать, если есть какая-либо дополнительная информация, которая может помочь в отладке этой ошибки!

Спасибо!

library(shiny)
ui <- fluidPage(titlePanel("Dilution History"),
  selectInput(inputId="client", label="Select Client Name", 
choices=levels(labData$Client.Name)), actionButton("update", "Update"), 
hr(),
  plotOutput("line")
)


server <- function(input, output, session){
#selected client into data frame
selDF <- reactive({data.frame(labData[labData[,1] =="input$client",])
  })   
  output$line <- renderPlot({
    plot(selDF()$Date, selDF()$ModResult, ylab="Result", main="Results 
For Client X Between Xdate and Ydate")
  })
}


shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 19 февраля 2019

После нескольких модификаций

library(shiny)
ui <- fluidPage(titlePanel("Dilution History"),
                selectInput(inputId = "client", label = "Select Client Name", 
                            choices = levels(labData$Clientname)), submitButton("update"), 
                hr(),
                plotOutput("line")
)


server <- function(input, output, session){

selDF <- reactive({data.frame(labData[labData$Clientname == input$client,])
  })
  output$line <- renderPlot({
    plot(selDF()$date, selDF()$result, ylab = "Result", main = "Results For Client X Between Xdate and Ydate")
  })
}

shinyApp(ui = ui, server = server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...