У меня есть список l
из data.frames
, и я хочу динамически выбирать элементы с помощью selectInput
.
Как только пользователь выберет элемент, я бы хотел иметь возможность работать с ним под капотом, например использовать его в renderTable
и вывести таблицу с этим data.frame
.
* 1009.* Кроме того, я хотел бы иметь возможность выбрать этот элемент в списке и применить, например,
lm
.
Проблема, с которой я сталкиваюсь, заключается в следующем: l[[ElemInput()]]
как мне преобразовать этот классический R
код с реактивным элементом?
Здесь полные shinydashboard
:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(
title = "My Dashboard"
),
dashboardSidebar(
sidebarMenu(
menuItem("aaa", tabName = "aaa", icon = icon("dashboard"))
)
),
dashboardBody(
tabItems(
# First tab content
tabItem(tabName = "aaa",
h2("Dashboard aaa"),
fluidRow(
box(
selectInput("input_name", "Select input:", choices = names(l))
),
box(
dataTableOutput('table')
)
)
)
)
)
)
server <- function(input, output) {
# create a fake list
set.seed(123)
l <- list(element1 = data.frame(aaa=1:5, bbb=sample(5)),
element2 = data.frame(ccc=6:10, ddd=sample(5)))
# reactive read element
ElemInput <- reactive({
input$input_name
})
# render table
output$table <- renderTable({
l[[ElemInput()]] # this part doesn't work
})
}
shinyApp(ui, server)
Возможно, коррелированные вопросы, но я не мог найти решение для моего случая:
динамически выводить список «выборов» для selectInput из выбранного пользователем столбца
Сохранять selectInput в строковом / символьном объекте