таблица данных из 2-х выбранных входов - PullRequest
0 голосов
/ 10 февраля 2019

Только начал изучать R & Shiny, и я пытаюсь создать страницу, которая будет принимать 2 входа и затем отображать соответствующие данные.У меня есть датафрейм с 10 столбцами, которые включают «год» и «имя. 35», для которых я создал поля ввода.Тем не менее, я не могу загрузить таблицу.

Идея состоит в том, что пользователь сначала выберет год, а затем имя. 35 .. и появятся строки, содержащие оба этих значения.в виде таблицы.

Вот мой код (я попробовал кучу ответов отсюда, но безуспешно).Я был бы признателен за некоторые рекомендации

сервер

  output$race_standings_table = DT::renderDataTable({
    standings %>%
      filter(., round == standings$year)
    standings %>%
      filter(., race_name == standings$name..35)


  })          

пользовательский интерфейс

tabItem(tabName = "standings", 
              h2("This is the standings table page"),
              fluidPage(
                h1("Table test", align = "center"),
                # DT::dataTableOutput("race_standings"),
                fluidRow(
                  column(2, selectInput("round", "Select a Round:", choices = sort(unique(standings$year)), selected = NULL, multiple = FALSE)),
                  column(4, selectInput("race_name", "Select a Grand Prix", choices = sort(unique(standings$name..35)), selected = NULL, multiple = FALSE)),
                  dataTableOutput("race_standings_table"))

1 Ответ

0 голосов
/ 10 февраля 2019

ваш подход правильный, вам нужно создать пользовательский интерфейс таблицы данных в пользовательском интерфейсе и отобразить таблицу данных в функции сервера.Однако для того, чтобы использовать входные значения (такие как select, numeric, date и т. Д.), Вам необходимо использовать тег input $ input_id на стороне сервера блестящего приложения.

В вашем случае выиметь два input_id: round и race_table

, поэтому ваша серверная часть должна быть:

  output$race_standings_table = DT::renderDataTable({
    standings %>%
      filter(year == input$round,
             name..35 == input$race_name)

  })  

иметь отличную блестящую кодировку:)

...