R 仪表板发亮,DT表不显示

R 仪表板发亮,DT表不显示,r,shiny,shinydashboard,dt,R,Shiny,Shinydashboard,Dt,我有一个仪表板,我想显示一张桌子,但我不明白为什么我的桌子不显示。例如,如果我用一些文本替换表格,h2(…)它确实会显示出来。我想点击“物种”并在点击时将表格显示在右边 library(shiny) library(shinydashboard) library(shinyWidgets) library(DT) ui <- dashboardPage( dashboardHeader(title = "Basic dashboard"), dashboardSidebar(si

我有一个仪表板,我想显示一张桌子,但我不明白为什么我的桌子不显示。例如,如果我用一些文本替换表格,
h2(…)
它确实会显示出来。我想点击“物种”并在点击时将表格显示在右边

library(shiny)
library(shinydashboard)
library(shinyWidgets)
library(DT)

ui <- dashboardPage(
  dashboardHeader(title = "Basic dashboard"),
  dashboardSidebar(sidebarMenu(
    menuItem(
      "Species",
      tabName = "Species",
      icon = NULL,
      switchInput(
        inputId = "long1",
        onLabel = "Go",
        offLabel = "NoGo",
        value = T
      ),
      actionButton("Gobtn", "Get data"),
      menuItem("Specs", tabName = "Specs", icon = NULL)
    )
  )),

  dashboardBody(tabItems(
    tabItem(tabName = "Species",
            DT::renderDataTable("Table1")),
    tabItem(tabName = "Specs",
            h2("Hi"))
  ))
)
库(闪亮)
图书馆(shinydashboard)
图书馆(shinyWidgets)
图书馆(DT)

ui您需要更改/添加
仪表板主体的某些部分,请参见

库(闪亮)
图书馆(shinydashboard)
图书馆(shinyWidgets)
图书馆(DT)

ui您需要更改/添加
仪表板主体的某些部分,请参见

库(闪亮)
图书馆(shinydashboard)
图书馆(shinyWidgets)
图书馆(DT)

ui这里没有什么东西可以让您的代码启动并运行。其他撰稿人也注意到了这对夫妇

我们需要在UI端使用
DT::dataTableOutput(“Table1”)
,因为
renderDataTable
在这里不起作用,这是服务器端的功能

另一种可能是在
菜单项中使用
开关输入
可能会混淆应用程序,因为这些不是传递到函数中的标准参数。从我从您的代码中可以看出,这是一个常见的挑战,您希望仅在选择“物种”选项卡时才能显示此
switchInput
。我们可以使用
条件面板
来解释这一点。为此,我们可以在
sidebarMenu
中设置
id=“tabs”
,然后在
条件面板中引用此
sidebarMenu

conditionalPanel(
  condition = "input.tabs== 'Species' ",
  switchInput(
    inputId = "long1",
    onLabel = "Go",
    offLabel = "NoGo",
    value = T
  )
)
最后,我修改了ui.R和server.R的布局,因为应用程序不需要使用
shinyApp
功能来处理服务器和ui文件。这就是我布置仪表盘的方式。它可能会向您展示一些其他可能的方法,您可以在Shiny中使用应用程序结构,但同样,您也可以将更改与基本布局对齐

ui.R

header <- dashboardHeader(title = "Basic dashboard")

sidebar <- dashboardSidebar(
  sidebarMenu(id = "tabs",
    menuItem(
      "Species",
      tabName = "Species",
      icon = NULL),

    conditionalPanel(
      condition = "input.tabs== 'Species' ",
      switchInput(
        inputId = "long1",
        onLabel = "Go",
        offLabel = "NoGo",
        value = T
      )
    ),


    actionButton("Gobtn", "Get data"),

    menuItem("Specs", tabName = "Spec", icon = NULL)
  )
)

body <- dashboardBody(
  tabItems(
    tabItem(tabName = "Species",
            DT::dataTableOutput("Table1")),

    tabItem(tabName = "Spec",
            h2("Hi"))
  )
)

dashboardPage(skin = "blue", header = header, sidebar = sidebar, body = body)
library(shiny)
library(shinydashboard)
library(shinyWidgets)
library(DT)

shinyServer(function(input, output, session){

  output$Table1 <- DT::renderDataTable({
    datatable(iris)
  })

})

header这里没有什么东西可以让您的代码启动并运行。其他撰稿人也注意到了这对夫妇

我们需要在UI端使用
DT::dataTableOutput(“Table1”)
,因为
renderDataTable
在这里不起作用,这是服务器端的功能

另一种可能是在
菜单项中使用
开关输入
可能会混淆应用程序,因为这些不是传递到函数中的标准参数。从我从您的代码中可以看出,这是一个常见的挑战,您希望仅在选择“物种”选项卡时才能显示此
switchInput
。我们可以使用
条件面板
来解释这一点。为此,我们可以在
sidebarMenu
中设置
id=“tabs”
,然后在
条件面板中引用此
sidebarMenu

conditionalPanel(
  condition = "input.tabs== 'Species' ",
  switchInput(
    inputId = "long1",
    onLabel = "Go",
    offLabel = "NoGo",
    value = T
  )
)
最后,我修改了ui.R和server.R的布局,因为应用程序不需要使用
shinyApp
功能来处理服务器和ui文件。这就是我布置仪表盘的方式。它可能会向您展示一些其他可能的方法,您可以在Shiny中使用应用程序结构,但同样,您也可以将更改与基本布局对齐

ui.R

header <- dashboardHeader(title = "Basic dashboard")

sidebar <- dashboardSidebar(
  sidebarMenu(id = "tabs",
    menuItem(
      "Species",
      tabName = "Species",
      icon = NULL),

    conditionalPanel(
      condition = "input.tabs== 'Species' ",
      switchInput(
        inputId = "long1",
        onLabel = "Go",
        offLabel = "NoGo",
        value = T
      )
    ),


    actionButton("Gobtn", "Get data"),

    menuItem("Specs", tabName = "Spec", icon = NULL)
  )
)

body <- dashboardBody(
  tabItems(
    tabItem(tabName = "Species",
            DT::dataTableOutput("Table1")),

    tabItem(tabName = "Spec",
            h2("Hi"))
  )
)

dashboardPage(skin = "blue", header = header, sidebar = sidebar, body = body)
library(shiny)
library(shinydashboard)
library(shinyWidgets)
library(DT)

shinyServer(function(input, output, session){

  output$Table1 <- DT::renderDataTable({
    datatable(iris)
  })

})

标题抱歉,我在icon=NULL之后错过了一个“,”。我对代码进行了一点更新,问题是我想在单击“物种”选项卡时将该表显示在该选项卡下。现在,当我单击选项卡时,按钮选项会出现,但右侧没有任何更改。@user6617474您的项目工作正常,但您能否演示如何在我的示例中使用多个选项卡?因为当我增加标签的数量时,我不能让它工作,所以我错过了一个“,”后图标=空。我对代码进行了一点更新,问题是我想在单击“物种”选项卡时将该表显示在该选项卡下。现在,当我单击选项卡时,按钮选项会出现,但右侧没有任何更改。@user6617474您的项目工作正常,但您能否演示如何在我的示例中使用多个选项卡?因为我不能让它工作时,我增加了tabsThanks的数量。我想不可能把菜单折叠起来?我不完全明白你的意思。但是,是的,您可以使用menuSubItems或将javascript传递到脚本/使用其他菜单类型来创建可折叠菜单。谢谢。我想不可能把菜单折叠起来?我不完全明白你的意思。但是,您可以使用menuSubItems或将javascript传递到脚本/使用其他菜单类型创建可折叠菜单。