Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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
R:基于无功值的不同类型输出_R_Shiny_Conditional Statements_Render_Networkd3 - Fatal编程技术网

R:基于无功值的不同类型输出

R:基于无功值的不同类型输出,r,shiny,conditional-statements,render,networkd3,R,Shiny,Conditional Statements,Render,Networkd3,我试图根据单选按钮输入的值显示径向网络或对角网络(使用软件包)参数类型图。我试图在renderUI()函数中放入一些if语句,但显然它不起作用。闪亮的应用程序是。它仅适用于径向壳体。请使用以下输入测试应用程序:第一个输入:“petrus”;第二个输入:“WinesAndCo”,然后单击最后一个蓝色按钮提交 UI ui <- fluidPage( # Application title titlePanel("Carrefour Hierarchical Exploration")

我试图根据单选按钮输入的值显示径向网络或对角网络(使用软件包)
参数类型图
。我试图在renderUI()函数中放入一些if语句,但显然它不起作用。闪亮的应用程序是。它仅适用于径向壳体。请使用以下输入测试应用程序:第一个输入:“petrus”;第二个输入:“WinesAndCo”,然后单击最后一个蓝色按钮提交

UI

ui <- fluidPage(

  # Application title
  titlePanel("Carrefour Hierarchical Exploration"),

  sidebarLayout(

    # Sidebar with a slider input
    sidebarPanel(
      textInput("param_caption", "Rechercher une famille de vin : ", "petrus"),
      radioButtons("param_sites", "Choisis sur quel site",
                   c("Auchan" = "1",
                     "G.V.P." = "2",
                     "Lavinia" = "3",
                     "Millesima" = "4",
                     "Vinatis"="5",
                     "WinesAndCo"="6")),
      radioButtons("param_typegraph", "Type de Graphique",
                   c("Radial Network" = "rad",
                     "Diagonal Network" = "diag"
                     )),
      sliderInput("param_height", "Graph Height:",
                  min = 300, max = 3000, value = 300
      ),
      sliderInput("param_width", "Graph Width:",
                  min = 400, max = 4000, value = 400
      ),
      sliderInput("param_size", "Police Size:",
                  min = 10, max = 60, value = 10
      ),
      actionButton(inputId="param_go",label="Submit",style="color: #fff; background-color: #337ab7; border-color: #2e6da4")


    ),
    # Show a plot of the generated distribution
    mainPanel(
      uiOutput('mygraph')

    )
  )
)
mainPanel(

  conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    uiOutput('mytabs')
  ),
  conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    uiOutput('mytabsii')
  )

)
mainPanel(
conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    radialNetworkOutput('mytabs')
),
conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    diagonalNetworkOutput('mytabsii')
)
)

ui好了,伙计们,我做到了。下面是我为使其工作而修改的部分代码

UI

ui <- fluidPage(

  # Application title
  titlePanel("Carrefour Hierarchical Exploration"),

  sidebarLayout(

    # Sidebar with a slider input
    sidebarPanel(
      textInput("param_caption", "Rechercher une famille de vin : ", "petrus"),
      radioButtons("param_sites", "Choisis sur quel site",
                   c("Auchan" = "1",
                     "G.V.P." = "2",
                     "Lavinia" = "3",
                     "Millesima" = "4",
                     "Vinatis"="5",
                     "WinesAndCo"="6")),
      radioButtons("param_typegraph", "Type de Graphique",
                   c("Radial Network" = "rad",
                     "Diagonal Network" = "diag"
                     )),
      sliderInput("param_height", "Graph Height:",
                  min = 300, max = 3000, value = 300
      ),
      sliderInput("param_width", "Graph Width:",
                  min = 400, max = 4000, value = 400
      ),
      sliderInput("param_size", "Police Size:",
                  min = 10, max = 60, value = 10
      ),
      actionButton(inputId="param_go",label="Submit",style="color: #fff; background-color: #337ab7; border-color: #2e6da4")


    ),
    # Show a plot of the generated distribution
    mainPanel(
      uiOutput('mygraph')

    )
  )
)
mainPanel(

  conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    uiOutput('mytabs')
  ),
  conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    uiOutput('mytabsii')
  )

)
mainPanel(
conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    radialNetworkOutput('mytabs')
),
conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    diagonalNetworkOutput('mytabsii')
)
)
服务器

server <- function(input, output) {
# a lot of compution ... that I do not display
# ...
  output$graphresdiag <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })
  output$graphresrad <- renderRadialNetwork({
    radialNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })

  output$mygraph= renderUI({

    if (isolate(input$param_typegraph)=="diag")
        {diagonalNetworkOutput(outputId = "graphresdiag",
                                width = paste0(input$param_width,"px"),
                                height =paste0(input$param_height,"px") )}

    if (isolate(input$param_typegraph)=="rad")
    {radialNetworkOutput(outputId = "graphresrad",
                           width = paste0(input$param_width,"px"),
                           height =paste0(input$param_height,"px") )}


  })

}
  output$graphresdiag <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })
  output$graphresrad <- renderRadialNetwork({
    radialNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })

  output$mytabs = renderUI({

radialNetworkOutput(outputId = "graphresrad",
                           width = paste0(input$param_width,"px"),
                           height =paste0(input$param_height,"px") )

  })


  output$mytabsii = renderUI({

    diagonalNetworkOutput(outputId = "graphresdiag",
                          width = paste0(input$param_width,"px"),
                          height =paste0(input$param_height,"px") )

  })
output$mytabs <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(), height = input$param_height, width = input$param_width, fontSize = input$param_size)
})
output$mytabsii <- renderRadialNetwork({
radialNetwork (tree_to_display(), height = input$param_height, width = input$param_width, fontSize = input$param_size)
})

})

output$graphresdiag好的,伙计们,我做到了。下面是我为使其工作而修改的部分代码

UI

ui <- fluidPage(

  # Application title
  titlePanel("Carrefour Hierarchical Exploration"),

  sidebarLayout(

    # Sidebar with a slider input
    sidebarPanel(
      textInput("param_caption", "Rechercher une famille de vin : ", "petrus"),
      radioButtons("param_sites", "Choisis sur quel site",
                   c("Auchan" = "1",
                     "G.V.P." = "2",
                     "Lavinia" = "3",
                     "Millesima" = "4",
                     "Vinatis"="5",
                     "WinesAndCo"="6")),
      radioButtons("param_typegraph", "Type de Graphique",
                   c("Radial Network" = "rad",
                     "Diagonal Network" = "diag"
                     )),
      sliderInput("param_height", "Graph Height:",
                  min = 300, max = 3000, value = 300
      ),
      sliderInput("param_width", "Graph Width:",
                  min = 400, max = 4000, value = 400
      ),
      sliderInput("param_size", "Police Size:",
                  min = 10, max = 60, value = 10
      ),
      actionButton(inputId="param_go",label="Submit",style="color: #fff; background-color: #337ab7; border-color: #2e6da4")


    ),
    # Show a plot of the generated distribution
    mainPanel(
      uiOutput('mygraph')

    )
  )
)
mainPanel(

  conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    uiOutput('mytabs')
  ),
  conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    uiOutput('mytabsii')
  )

)
mainPanel(
conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    radialNetworkOutput('mytabs')
),
conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    diagonalNetworkOutput('mytabsii')
)
)
服务器

server <- function(input, output) {
# a lot of compution ... that I do not display
# ...
  output$graphresdiag <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })
  output$graphresrad <- renderRadialNetwork({
    radialNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })

  output$mygraph= renderUI({

    if (isolate(input$param_typegraph)=="diag")
        {diagonalNetworkOutput(outputId = "graphresdiag",
                                width = paste0(input$param_width,"px"),
                                height =paste0(input$param_height,"px") )}

    if (isolate(input$param_typegraph)=="rad")
    {radialNetworkOutput(outputId = "graphresrad",
                           width = paste0(input$param_width,"px"),
                           height =paste0(input$param_height,"px") )}


  })

}
  output$graphresdiag <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })
  output$graphresrad <- renderRadialNetwork({
    radialNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })

  output$mytabs = renderUI({

radialNetworkOutput(outputId = "graphresrad",
                           width = paste0(input$param_width,"px"),
                           height =paste0(input$param_height,"px") )

  })


  output$mytabsii = renderUI({

    diagonalNetworkOutput(outputId = "graphresdiag",
                          width = paste0(input$param_width,"px"),
                          height =paste0(input$param_height,"px") )

  })
output$mytabs <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(), height = input$param_height, width = input$param_width, fontSize = input$param_size)
})
output$mytabsii <- renderRadialNetwork({
radialNetwork (tree_to_display(), height = input$param_height, width = input$param_width, fontSize = input$param_size)
})

})

output$graphresdiag我为未来的读者添加这个答案

我正在使用NetworkD3软件包,并尝试做类似的事情,并意识到您的代码可以通过以下方式简化:

UI

ui <- fluidPage(

  # Application title
  titlePanel("Carrefour Hierarchical Exploration"),

  sidebarLayout(

    # Sidebar with a slider input
    sidebarPanel(
      textInput("param_caption", "Rechercher une famille de vin : ", "petrus"),
      radioButtons("param_sites", "Choisis sur quel site",
                   c("Auchan" = "1",
                     "G.V.P." = "2",
                     "Lavinia" = "3",
                     "Millesima" = "4",
                     "Vinatis"="5",
                     "WinesAndCo"="6")),
      radioButtons("param_typegraph", "Type de Graphique",
                   c("Radial Network" = "rad",
                     "Diagonal Network" = "diag"
                     )),
      sliderInput("param_height", "Graph Height:",
                  min = 300, max = 3000, value = 300
      ),
      sliderInput("param_width", "Graph Width:",
                  min = 400, max = 4000, value = 400
      ),
      sliderInput("param_size", "Police Size:",
                  min = 10, max = 60, value = 10
      ),
      actionButton(inputId="param_go",label="Submit",style="color: #fff; background-color: #337ab7; border-color: #2e6da4")


    ),
    # Show a plot of the generated distribution
    mainPanel(
      uiOutput('mygraph')

    )
  )
)
mainPanel(

  conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    uiOutput('mytabs')
  ),
  conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    uiOutput('mytabsii')
  )

)
mainPanel(
conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    radialNetworkOutput('mytabs')
),
conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    diagonalNetworkOutput('mytabsii')
)
)
服务器

server <- function(input, output) {
# a lot of compution ... that I do not display
# ...
  output$graphresdiag <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })
  output$graphresrad <- renderRadialNetwork({
    radialNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })

  output$mygraph= renderUI({

    if (isolate(input$param_typegraph)=="diag")
        {diagonalNetworkOutput(outputId = "graphresdiag",
                                width = paste0(input$param_width,"px"),
                                height =paste0(input$param_height,"px") )}

    if (isolate(input$param_typegraph)=="rad")
    {radialNetworkOutput(outputId = "graphresrad",
                           width = paste0(input$param_width,"px"),
                           height =paste0(input$param_height,"px") )}


  })

}
  output$graphresdiag <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })
  output$graphresrad <- renderRadialNetwork({
    radialNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })

  output$mytabs = renderUI({

radialNetworkOutput(outputId = "graphresrad",
                           width = paste0(input$param_width,"px"),
                           height =paste0(input$param_height,"px") )

  })


  output$mytabsii = renderUI({

    diagonalNetworkOutput(outputId = "graphresdiag",
                          width = paste0(input$param_width,"px"),
                          height =paste0(input$param_height,"px") )

  })
output$mytabs <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(), height = input$param_height, width = input$param_width, fontSize = input$param_size)
})
output$mytabsii <- renderRadialNetwork({
radialNetwork (tree_to_display(), height = input$param_height, width = input$param_width, fontSize = input$param_size)
})

})

output$mytabs我为未来的读者添加这个答案

我正在使用NetworkD3软件包,并尝试做类似的事情,并意识到您的代码可以通过以下方式简化:

UI

ui <- fluidPage(

  # Application title
  titlePanel("Carrefour Hierarchical Exploration"),

  sidebarLayout(

    # Sidebar with a slider input
    sidebarPanel(
      textInput("param_caption", "Rechercher une famille de vin : ", "petrus"),
      radioButtons("param_sites", "Choisis sur quel site",
                   c("Auchan" = "1",
                     "G.V.P." = "2",
                     "Lavinia" = "3",
                     "Millesima" = "4",
                     "Vinatis"="5",
                     "WinesAndCo"="6")),
      radioButtons("param_typegraph", "Type de Graphique",
                   c("Radial Network" = "rad",
                     "Diagonal Network" = "diag"
                     )),
      sliderInput("param_height", "Graph Height:",
                  min = 300, max = 3000, value = 300
      ),
      sliderInput("param_width", "Graph Width:",
                  min = 400, max = 4000, value = 400
      ),
      sliderInput("param_size", "Police Size:",
                  min = 10, max = 60, value = 10
      ),
      actionButton(inputId="param_go",label="Submit",style="color: #fff; background-color: #337ab7; border-color: #2e6da4")


    ),
    # Show a plot of the generated distribution
    mainPanel(
      uiOutput('mygraph')

    )
  )
)
mainPanel(

  conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    uiOutput('mytabs')
  ),
  conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    uiOutput('mytabsii')
  )

)
mainPanel(
conditionalPanel(
    condition = "input.param_typegraph == 'rad'",
    radialNetworkOutput('mytabs')
),
conditionalPanel(
    condition = "input.param_typegraph == 'diag'",
    diagonalNetworkOutput('mytabsii')
)
)
服务器

server <- function(input, output) {
# a lot of compution ... that I do not display
# ...
  output$graphresdiag <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })
  output$graphresrad <- renderRadialNetwork({
    radialNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })

  output$mygraph= renderUI({

    if (isolate(input$param_typegraph)=="diag")
        {diagonalNetworkOutput(outputId = "graphresdiag",
                                width = paste0(input$param_width,"px"),
                                height =paste0(input$param_height,"px") )}

    if (isolate(input$param_typegraph)=="rad")
    {radialNetworkOutput(outputId = "graphresrad",
                           width = paste0(input$param_width,"px"),
                           height =paste0(input$param_height,"px") )}


  })

}
  output$graphresdiag <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })
  output$graphresrad <- renderRadialNetwork({
    radialNetwork (tree_to_display(),height = input$param_height,width = input$param_width, fontSize = input$param_size)
  })

  output$mytabs = renderUI({

radialNetworkOutput(outputId = "graphresrad",
                           width = paste0(input$param_width,"px"),
                           height =paste0(input$param_height,"px") )

  })


  output$mytabsii = renderUI({

    diagonalNetworkOutput(outputId = "graphresdiag",
                          width = paste0(input$param_width,"px"),
                          height =paste0(input$param_height,"px") )

  })
output$mytabs <- renderDiagonalNetwork({
    diagonalNetwork (tree_to_display(), height = input$param_height, width = input$param_width, fontSize = input$param_size)
})
output$mytabsii <- renderRadialNetwork({
radialNetwork (tree_to_display(), height = input$param_height, width = input$param_width, fontSize = input$param_size)
})

})

output$mytabs Try
conditionalPanel
thks这似乎是我要找的