首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么tabsetPanel显示在我的数据表上?R发亮

为什么tabsetPanel显示在我的数据表上?R发亮
EN

Stack Overflow用户
提问于 2019-12-11 04:12:08
回答 1查看 323关注 0票数 0

我已经干了几天了,运气不太好。每当我从代码中注释掉tabsetPanels时,datatable (DT)就会显示自己。但是,当tabsetPanels留在其中时,datatable就无处可寻了。这是为什么,我怎么能解决这个问题?

代码语言:javascript
复制
library(shiny)
library(DT)
library(data.table)

# Define UI ----
ui <- fluidPage(
  titlePanel("Alpha"),
  mainPanel(
    fluidRow(
      tabsetPanel(id = 'tpanel',
                  type = "tabs",
                  tabPanel("Alpha", plotOutput("plot")),
                  tabPanel("Beta", plotOutput("plot")),
                  tabPanel("Delta",  plotOutput("plot")),
                  tabPanel("Omega", plotOutput("plot")))
      ),
    br(),
    br(),
    fluidRow(
      splitLayout(
        dateInput("sdate", "Start Date"),
        dateInput("edate", "End Date"),
        textInput("gmin", "Minimum"),
        textInput("gmax", "Maximum")
      )
    ),
    br(),
    DT::dataTableOutput('tbl')
  )
)

# Define server logic ----
server <- function(input, output) {
  output$tbl <- renderDT({datatable(port, editable = 'cell', caption = 'test')})
}

# Run the app ----
shinyApp(ui = ui, server = server)

这是下面的代码输出,请注意缺少的datatable:

当我删除/注释掉tabsetPanel时,datatable将正常显示。我还应该补充的是,变量端口是从csv加载到内存中的,为了方便起见,我在那里使用了它。在启动此脚本之前,我手动加载了它,而且我只是在学习如何获得闪亮的诀窍时手动加载它。最后,当我运行以下脚本时,它将毫无问题地运行:

代码语言:javascript
复制
library(shiny)
library(DT)
library(data.table)

# Define UI ----
ui <- fluidPage(
  titlePanel("Alpha"),
  DT::dataTableOutput('tbl')
  )
)

# Define server logic ----
server <- function(input, output) {
  output$tbl <- renderDT({datatable(port, editable = 'cell', caption = 'test')})
}

# Run the app ----
shinyApp(ui = ui, server = server)

当我将tabsetPanels添加到上面的代码中时,datatable不会显示。这是为什么,我怎么能修好它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-11 09:15:31

对于plotOutput("plot")上的输出有几倍相同的ID,因此无法呈现任何输出,Shiny对此感到困惑。

以下是解决办法:

代码语言:javascript
复制
library(shiny)
library(DT)
library(data.table)

# Define UI ----
ui <- fluidPage(
  titlePanel("Alpha"),
  mainPanel(
    fluidRow(
      tabsetPanel(id = 'tpanel',
                  type = "tabs",
                  tabPanel("Alpha", plotOutput("plot1")),
                  tabPanel("Beta", plotOutput("plot2")),
                  tabPanel("Delta",  plotOutput("plot3")),
                  tabPanel("Omega", plotOutput("plot4")))
    ),
    br(),
    br(),
    fluidRow(
      splitLayout(
        dateInput("sdate", "Start Date"),
        dateInput("edate", "End Date"),
        textInput("gmin", "Minimum"),
        textInput("gmax", "Maximum")
      )
    ),
    br(),
    DT::dataTableOutput('tbl')
  )
)

# Define server logic ----
server <- function(input, output) {
  output$tbl <- renderDT({datatable(iris, editable = 'cell', caption = 'test')})
}

# Run the app ----
shinyApp(ui = ui, server = server)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59278794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档