我正在使用 Shiny 中的 visNetwork 包构建网络分析,并想知道是否有办法直接使用 UI 中的 Server 中定义的项目。
如下面的代码,对于UI中的selectInput,我想调用一个列表"nodes$id",它是在Shiny server中定义的数据框 "nodes" 的列。
它不起作用,因为UI 中调用的列表必须在 R而不是Shiny Server中预定义。
server <- function(input, output) {
output$network_proxy_nodes <- renderVisNetwork({
# minimal example
nodes <- data.frame(id = 2:4)
edges <- data.frame(from = c(2,3), to = c(2,4))
visNetwork(nodes, edges) %>% visNodes(color = "blue")
})
observe({
visNetworkProxy("network_proxy_nodes") %>%
visFocus(id = input$Focus, scale = 4)
})
}
ui <- fluidPage(
fluidRow(
column(
width = 4,
selectInput("Focus", "Focus on node :",
nodes$id)
),
column(
width = 8,
visNetworkOutput("network_proxy_nodes", height = "400px")
)
)
)
shinyApp(ui = ui, server = server)
提前致谢。