Я строю сеть в Shiny с использованием пакета visNetwork.
Интересна функция показа ввода узлов и ребер.Однако ввод узлов и ребер можно показывать только отдельно, а не вместе, в одном окне.
Я следовал следующей инструкции https://datastorm -open.github.io / visNetwork / spark.html создать интерактивный ввод узлов и ребер, наведя курсор на узлы и ребра.Это делается с помощью hoverNode / hoverEdge arg в функции visEvent в пакете visNetwork.Это основано на функции Shiny.OnInputChange в событии javascript
library(visNetwork)
library(shiny)
server <- function(input, output) {
output$network <- renderVisNetwork({
# minimal example
nodes <- data.frame(id = 1:3, label = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges) %>%
visInteraction(hover = TRUE) %>%
visEvents(hoverNode = "function(nodes) {
Shiny.onInputChange('current_node_id', nodes);
;}"), hoverEdge = "function(edges) {
Shiny.onInputChange('current_edge_id', edges);
;}")
})
output$shiny_return <- renderPrint({
input$current_node_id
})
}
output$shiny_return <- renderPrint({
input$current_edge_id
})
}
ui <- fluidPage(
visNetworkOutput("network"),
verbatimTextOutput("shiny_return")
)
shinyApp(ui = ui, server = server)
На основе кода у меня есть 2 вывода renderPrint.Я хочу сохранить для 1, однако, это ограничено аргументами hoverNode / hoverEdge.
Заранее спасибо