Реактивные графики с R Shiny - PullRequest
0 голосов
/ 29 мая 2020

Я новичок в R и Shiny и хотел создать коробочную диаграмму с помощью Shiny. Вот мой код

UI-часть

ui <- shinyUI(fluidPage(
  titlePanel("Shiny app"),
  tabsetPanel(
    tabPanel(
      "Lab data (boxplot)",
      titlePanel("Lab data over time"),
      sidebarLayout(
        sidebarPanel(
          selectInput(
            "lab_df",
            "Choose lab dataframe",
            choices = ls(),
            selected = "lb"
          ),
          selectInput(
            "lab_test_var",
            "Choose lab test column",
            choices = NULL,
          ),
          selectInput(
            "lab_test_lvl",
            "Choose lab test performed",
            choices = NULL,
          ),
          tags$br(),
        ),
        mainPanel(plotOutput("lab_boxplot"))
      )
    )

  )
))

Серверная часть

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

  lab_df <- reactive({
    get(input$lab_df)
  })

  observe({
    col <- colnames(lab_df())
    updateSelectInput(session, "lab_test_var", choices = col, selected = "LBTEST")

  })

  observe({
    var <- lab_df()[[input$lab_test_var]]
    lvl <- unique(var)
    updateSelectInput(session, "lab_test_lvl", choices = lvl)
  })

  output$lab_boxplot <- renderPlot(ggplot(data=(labelled_dfs[[input$lab_df]] %>% filter(labelled_dfs[[input$lab_df]]$(input$lab_test_var) == input$lab_test_lvl)), aes(group=VISIT, y=LBORRES, x = VISIT)) +
    geom_boxplot()

})

У меня есть список фреймов данных, импортированных из SAS с пакетной гаванью, у меня есть в моем глобальном окружающая среда все мои фреймы данных как объекты + список (labelled_dfs), содержащий одинаковые фреймы данных с метками. Вот пример моего лабораторного фрейма данных: Здесь мой вход $ lab_test_var будет LAB, а мой вход $ lab_test_lvl будет 1 (или, например, «гемоглобины» в помеченном фрейме данных). Итак, я хотел бы создать коробчатую диаграмму для каждого «lab_test_lvl»

VISIT    LAB
1          1
2          1
3          1
1          2
2          2
3          2

Спасибо за помощь

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