Я новичок в 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
Спасибо за помощь