我想在Rshiny中使用验证功能。
output$one <- renderTable({
isolate({
Loadprob <- input$prob1
prob <- read.xls(Loadprob$datapath)
validate(need(ncol(prob)==13, "Error"))
但是函数validate不会返回&#34;错误&#34;消息,我不知道为什么。
谢谢!
答案 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;。