R Блестящий выбор нескольких переменных с одним флажком - PullRequest
0 голосов
/ 22 сентября 2019

Абсолютно новый для блеска, и я просто пытаюсь осознать его безумный потенциал.

Чтобы подвести итог, я пытаюсь разработать интерактивный набор данных для блестящего приложения, отображающего данные исследований.Тем не менее, мой набор данных содержит более 1000 переменных, которые, очевидно, не все могут отображаться для выбора флажка.Для решения этой проблемы я разработал группы переменных.

К сожалению, я не могу заставить себя выбрать несколько переменных с помощью всего одного флажка, а затем отобразить все эти переменные (в пределах выбранной группы переменных) в таблице данных.Это вообще возможно?Приведенный ниже код явно не работает, но он просто дает представление о том, что я пытаюсь сделать.Если кто-то может указать мне правильное направление, я был бы очень благодарен.

Приветствия

ui <- fluidPage(
checkboxGroupInput("variable", "Variables to show:",
                 c("Cy_Trans_Gear" = c("cyl", "am", "gear"),
                   "Transmission" = "am",
                   "Gears" = "gear")),
tableOutput("data")
)

server <- function(input, output, session) {
output$data <- renderTable({
mtcars[, c("mpg", input$variable), drop = FALSE]
}, rownames = TRUE)
}

shinyApp(ui, server)

1 Ответ

0 голосов
/ 22 сентября 2019

Одним из способов решения этой проблемы является создание функции, которая принимает значение из входных данных и выдает нужные вам столбцы (что-то вроде справочной таблицы).После этого вы можете отфильтровать необходимые столбцы внутри и renderTable({)} перед отображением таблицы.

ui <- fluidPage(
checkboxGroupInput("variable", "Variables to show:",
                 c("Cy_Trans_Gear" = c("cyl", "am", "gear"),
                   "Transmission" = "am",
                   "Gears" = "gear")),
tableOutput("data")
)

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


# Use an ifelse/switch statement
# to return a list of list names
# based on input.

lookupTable <- function(ip) {

        if (ip == "something") {
            return (c("col1", "col2", "col3"))
        } else if () {
            ...
        }        
}

output$data <- renderTable({
selected_column_list <- lookupTable(input$variable)
mtcars %>%
    select(selected_column_list)
}, rownames = TRUE)
}

shinyApp(ui, server)

Вы также можете использовать базу R вместо dplyr для возврата таблицы.Я не тестировал приведенный выше код, поэтому могут возникнуть проблемы с синтаксисом, но идея остается.

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