我可以創建一個閃亮的數據表,顯示任何單個水牛的數據,但我無法弄清楚如何同時顯示所有水牛數據。任何幫助表示讚賞。閃亮的數據表使用過濾器顯示所有數據
樣本數據:
cleanbuffalo <- data.frame(name = c("queen","toni","pepper"), longitude = c(31.8,32,33), latitude = c(-24,-25,-26))
閃亮UI:
shinyUI(navbarPage("Buffalo Migration", id ="nav",
tabPanel("Data",
fluidRow(
column(3,
selectInput("allnamesbuffalo", "Buffalo", c("All Buffalo" = "all buffalo", vars))
)
),
hr(),
DT::dataTableOutput("buffalotable")
)
)
)
閃亮服務器:
shinyServer(function(input, output, session) {
observe({
allnamesbuffalo <- if (is.null(input$allnamesbuffalo)) character(0) else {
filter(cleanbuffalo, name %in% input$allnamesbuffalo) %>%
`$`('name') %>%
unique() %>%
sort()
}
})
output$buffalotable <- DT::renderDataTable({
df <- cleanbuffalo %>%
filter(
cleanbuffalo$name == input$allnamesbuffalo,
is.null(input$allnamesbuffalo) | name %in% cleanbuffalo$name
)
action <- DT::dataTableAjax(session,df)
DT::datatable(df, options = list(ajax = list(url = action)),
escape = FALSE)
})
})
想法是,當用戶選擇'all buffalo'時,name變量應該包含所有水牛名稱的列表,否則它只包含那個特定的水牛名稱。您可以在過濾器之前使用if/else來計算'names'變量。 –
你介意讓自己更具體一些嗎?我認爲我需要根據用戶選擇使用if/else命名變量更新。但是,當我嘗試更改名稱變量以包含所有水牛選擇中的所有水牛名稱時,我都會收到錯誤。謝謝你的幫助。 – josh453