2016-09-10 4 views
0

나는 csv 파일의 입력을받는 반짝이는 응용 프로그램을 가지고 있습니다.플로팅 함수에서 오류 처리

제가

server.R

myPlot <- function(data) {이 함수는 괄호 안의 상기 데이터 프레임으로부터의 변수를 사용에 묘화 기능을 갖는다. 이 데이터 프레임은 업로드 된 파일의 입력입니다.}

데이터 프레임에 함수에서 사용하는 열이없는 경우 반짝이는 탭에서 오류가 발생한다고 상상해보십시오.

어떻게 이러한 오류를 처리합니까?

"다음 파일은 호환되지 않습니다."라는 메시지를 보내서 처리하고 싶습니다.

+2

당신은'유효성 검사()'와'필요()'사용할 수 있습니다 검증 및 필요성 –

+0

실 거예요 작업을하지만,이에 을 입력을 확인합니다 http://shiny.rstudio.com/articles/req.html을 업로드 된 파일을 플로팅 기능에 적용해야하는 경우. – radhika

+0

대부분의 오류에 대해 다음과 같이 작동 했습니까? tryCatch (myplot (ss), error = function (e) {print ("수행")}, warning = function (e) 그러나 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)