Блестящая приборная панель реактивного стола со ссылками - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть таблица клиентов в одной из моих вкладок (назовем это вкладкой магазина) в пределах shinydashboard.Я хочу добавить ссылки для каждого клиента, которые отправят вас на другую вкладку в shinydashboard (вкладка клиента), которая предоставит более подробную информацию (в основном графики поведения клиента) об этом конкретном клиенте.Это может быть легко достигнуто путем копирования идентификатора клиента и вставки его в строку поиска на вкладке клиента, но я хочу знать, возможно ли сделать это более интерактивно -> нажав на конкретного клиента на вкладке магазина, приборная панель отправляетВы переходите на вкладку клиента и одновременно вводите идентификатор клиента в строку поиска, поэтому вам предоставляются все графики, отфильтрованные по идентификатору клиента.Все предложения приветствуются.

Спасибо!

1 Ответ

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

Вы можете выбрать, какие строки, столбцы, ячейки щелкаются с помощью DT, есть отличная документация по использованию DT с Shiny .После этого вы можете отфильтровать таблицу клиентов и отправить пользователя на другую вкладку, используя updateTabsetPanel.

Пример ниже.

library(DT)
library(shiny)

df <- data.frame(
  customer = LETTERS[1:5],
  id = seq(1, 5)
)

ui <- navbarPage(
  "Stackoverflow",
  id = "tabs", # give id to use updateTabsetPanel
  tabPanel(
    "shop",
    h2("Customers are below"),
    DTOutput("table")
  ),
  tabPanel(
    "customer",
    uiOutput("customer")
  )
)

server <- function(input, output, session){
  output$table <- renderDT(df, selection = "single")

  observeEvent(input$table_rows_selected, {
    updateTabsetPanel(session = session, inputId = "tabs", selected = "customer")
  })

  output$customer <- renderUI({
    c <- df[input$table_rows_selected, "customer"]
    h2(paste("Hi I'm customer", c, "!"))
  })
}

shinyApp(ui, server)
...