2016-09-10 61 views
0

我有一個閃亮的應用程序,它需要輸入一個csv文件。處理繪圖功能中的錯誤

我在server.R

myPlot <- function(data) {此功能使用從括號中的數據幀中的變量繪圖功能。該數據幀是來自上傳文件的輸入。}

想象一下,如果數據幀沒有函數使用的列,我們將在閃亮選項卡中遇到錯誤。

如何處理這樣的錯誤?

我想通過拋出一條消息聲明「下列文件不兼容」來處理它。

+2

你可以用'的validate()'和'需要()':http://shiny.rstudio.com/articles/req.html –

+0

不會工作作爲驗證和需要將檢查輸入 但在這我們需要將上傳的文件應用於繪圖功能。 – radhika

+0

tryCatch(myplot(ss),error = function(e){print(「Did it」)},warning = function(e){print(「Did it」)}) 以下內容適用於大多數錯誤。 但它不處理facet_wrap 得到 layout_base(data,vars,drop = drop)中的錯誤: 至少有一個圖層必須包含用於構建切面的所有變量 如何處理此問題? 需要強大的錯誤處理程序的情節 – radhika

回答

0

它只是作爲@UnnamedUser建議,您可以使用validate()need()功能檢查條件:

例子:我想要繪製data$Col_Adata$Col_B。如果兩列都在data.frame中,該圖只會呈現,否則會顯示預定義的錯誤消息。

library(shiny) 

data <- data.frame(
    Col_A = 1:5, 
    Col_D = 16:20) 

ui <- fluidPage(
    plotOutput("plot") 
) 

server <- function(input, output, session){ 
    output$plot <- renderPlot({ 
    validate(
     need(
     sum(c("Col_A", "Col_B") %in% colnames(data)) == 2, "Col_A and/or Col_B columns are missing!") 
    ) 
    plot(data$Col_A, data$Col_B) 
    }) 
} 

shinyApp(ui, server)