Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于闪亮应用程序中的visNetwork下拉节点选择更新数据表_R_Shiny_Visnetwork - Fatal编程技术网

基于闪亮应用程序中的visNetwork下拉节点选择更新数据表

基于闪亮应用程序中的visNetwork下拉节点选择更新数据表,r,shiny,visnetwork,R,Shiny,Visnetwork,我有一个简单的闪亮的应用程序,它显示一个小的网络。正如您所看到的,当我单击一个节点时,下面的数据表会相应地更新。问题是,当我从顶部的下拉列表中选择visnetwork提供的nodesIdSelection()节点时,这种情况不会发生。是否可以将此列表与表连接,以便从网络本身或此列表中选择节点 library(igraph) library(visNetwork) library(dplyr) library(shiny) library(shinythemes) library(DT) #da

我有一个简单的闪亮的应用程序,它显示一个小的网络。正如您所看到的,当我单击一个节点时,下面的数据表会相应地更新。问题是,当我从顶部的下拉列表中选择visnetwork提供的
nodesIdSelection()
节点时,这种情况不会发生。是否可以将此列表与表连接,以便从网络本身或此列表中选择节点

library(igraph)
library(visNetwork)
library(dplyr)
library(shiny)
library(shinythemes)
library(DT)

#dataset
id<-c("articaine","benzocaine","etho","esli")
label<-c("articaine","benzocaine","etho","esli")
node<-data.frame(id,label)

from<-c("articaine","articaine","articaine",
        "articaine","articaine","articaine",
        "articaine","articaine","articaine")
to<-c("benzocaine","etho","esli","benzocaine","etho","esli","benzocaine","etho","esli")
title<-c("SCN1A","SCN1A","SCN1A","SCN2A","SCN2A","SCN2A","SCN3A","SCN3A","SCN3A")

edge<-data.frame(from,to,title)


#app

ui <- fluidPage(

  # Generate Title Panel at the top of the app
  titlePanel("Network Visualization App"),

  fluidRow(
    column(width = 6,
           DTOutput('tbl')),
    column(width = 6,
           visNetworkOutput("network")) #note that column widths in a fluidRow should sum to 12
  ),
  fluidRow(column(width = 6), 
           column(width=6, "Click and hold nodes for a second to select additional nodes.")
  )

) #end of fluidPage


server <- function (input, output, session){

  output$network <- renderVisNetwork({
    visNetwork(nodes = node,edge) %>% 
      visOptions(highlightNearest=TRUE, 
                 nodesIdSelection = TRUE) %>%
      #allow for long click to select additional nodes
      visInteraction(multiselect = TRUE) %>%
      visIgraphLayout() %>% 

      #Use visEvents to turn set input$current_node_selection to list of selected nodes
      visEvents(select = "function(nodes) {
                Shiny.onInputChange('current_node_selection', nodes.nodes);
                ;}")

  })

  #render data table restricted to selected nodes
  output$tbl <- renderDT(
    edge %>% 
      filter((to %in% input$current_node_selection)|(from %in% input$current_node_selection)),
    options = list(lengthChange = FALSE)
  )

}

shinyApp(ui, server)
库(igraph)
图书馆(visNetwork)
图书馆(dplyr)
图书馆(闪亮)
图书馆(shinythemes)
图书馆(DT)
#数据集
身份证件