验证()Rshiny

时间:2016-11-21 13:20:28

标签: r shiny

我想在Rshiny中使用验证功能。

  output$one <- renderTable({
  isolate({
  Loadprob <- input$prob1
  prob <- read.xls(Loadprob$datapath)

  validate(need(ncol(prob)==13, "Error"))

但是函数validate不会返回&#34;错误&#34;消息,我不知道为什么。

谢谢!

1 个答案:

答案 0 :(得分:1)

我创建了一个可重现的代码示例。如有其他问题,请自行尝试。这使得查找和解决问题变得更加容易。

library(shiny)
ui <- fluidPage(
  sidebarLayout(    
    sidebarPanel(
      fileInput("prob1", label = "Excel File", multiple = F)
    ),
    mainPanel(
      tableOutput("one")
    )
  )
)
# Server logic
server <- function(input, output) {
  output$one <- renderTable({
      req(input$prob1)
      Loadprob <- input$prob1

      prob <- read.csv(Loadprob$datapath, header = T, sep = ";")
      ## prob <- read.xls(Loadprob$datapath)

      validate(need(ncol(prob)==13, "Error"))
      prob
  })
}
shinyApp(ui, server)

我使用read.csv而不是read.xls,因为我无法安装xlsx-package,但这不应该是问题。

您还必须在renderTable函数的开头包含一个req(),因为它只应在上传文件时执行。

最后,你必须告诉哪个变量应该作为一个表格绘制,在这种情况下是&#34; prob&#34;。