Почему блестящая приборная панель загружается слишком долго?

Задача

Привет, у меня есть два набора данных. Я хочу выбирать по одному, используя radioButtons в shinydashboard.

Проблема

В файл app.R я сначала загружаю два набора данных (размером 71 Мб и 103 Мб). Следующий код работает, и загрузка приложения занимает всего несколько секунд:

Рабочий код:

library(shiny)
library(dplyr)
library(shinydashboard)

# Global
df10151 <- read.csv("Data/df1015.csv", header = TRUE)
df8051 <- read.csv("Data/df805.csv", header = TRUE)

# UI
ui <- dashboardPage(
  dashboardHeader(title = "Driving States"),
  dashboardSidebar(
     sliderInput("fid", "Frame ID:",
                min = 0, max = 50, value = 3, step = 0.1
    )))

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

}

shinyApp(ui, server)

Но когда я добавляю radioButtons, это занимает вечность и не загружается:

Неудачный код:

library(shiny)
    library(dplyr)
    library(shinydashboard)
    
    # Global
    df10151 <- read.csv("Data/df1015.csv", header = TRUE)
    df8051 <- read.csv("Data/df805.csv", header = TRUE)
    
    # UI
    ui <- dashboardPage(
      dashboardHeader(title = "Driving States"),
      dashboardSidebar(
        radioButtons("radio", label = h3("Select the Dataset (first 5 minutes)"),
                 choices = list("US-101" = df10151, "I-80" = df8051), 
                 selected = NULL),         

        sliderInput("fid", "Frame ID:",
                    min = 0, max = 50, value = 3, step = 0.1
        )))
    
    # Server
    server <- function(input, output, session) {
     
    
    }
    
    shinyApp(ui, server)

Сообщение об ошибке отсутствует. Что я делаю не так?


person umair durrani    schedule 12.05.2016    source источник
comment
Непонятно, что вы хотите сделать с переключателем. Вы не можете передать набор данных в вариант выбора. Посмотрите shiny.rstudio.com/gallery/radio-buttons.html.   -  person Divi    schedule 13.05.2016
comment
@Divi Это приложение еще не завершено. Я хочу выбрать один из двух наборов данных, а затем построить некоторую его часть. Для выбора я использую radioButtons   -  person umair durrani    schedule 13.05.2016
comment
что вы имеете в виду под не загружается - что не загружается?   -  person SymbolixAU    schedule 13.05.2016
comment
Вы, вероятно, не хотите включать свой огромный набор данных в свою радиокнопку. Просто поместите 2 текста, затем на основе выбранного текста выберите набор данных   -  person HubertL    schedule 13.05.2016
comment
@Symbolix, приложение не загружается, когда я нажимаю кнопку «Запустить приложение» в RStudio.   -  person umair durrani    schedule 13.05.2016
comment
Да, именно так, как говорит @HubertL - не используйте list("US-101" = df10151, ... - df10151 - это ваш набор данных. Вы, вероятно, хотите list("US-101" = 1, ..., затем используйте switch или if, чтобы выбрать набор данных, который вы рисуете.   -  person SymbolixAU    schedule 13.05.2016


Ответы (1)


Я не уверен, что именно вы хотели бы построить, поэтому вот пример:

Радиокнопка в ui.R будет работать так:

radioButtons("radio", label = h3("Select the Dataset (first 5 minutes)"),
                 choices = c("US-101" = 1, "I-80" = 2), 
                 selected = 1)

Для server.R вам нужно что-то вроде:

output$plot = renderPlot({ 
       switch(input$radio,
       `1` = hist(df10151$Var),
       `2` = hist(df8051$Var)
})
person Divi    schedule 12.05.2016
comment
Спасибо. Я запутался в выборе. - person umair durrani; 13.05.2016
comment
Я предполагаю, что вы знаете, что объект plot должен быть помещен в файл dashboardBody(). Вы можете играть с fluidRow и box, чтобы получить желаемый результат. - person Divi; 13.05.2016