2016-06-15 4 views
2

에서 "ExtractVars에 잘못된 모델 식"이것은 내 반짝 UI의 이미지 : enter image description here오류 반짝

global.R 코드 :

library(shiny) 
library(gsheet) 
library(ggvis) 
library(ggplot2) 

urlA <- "https://docs.google.com/spreadsheets/d/1lVVGg2iRLtOaizrkaJHtPCyEnQiKAnJPyNj1kSSPXvY/edit?usp=sharing" 
urlB <- "Another URL" 
urlC <- "Another URL" 
urlD <- "Another URL" 
urlE <- "Another URL" 

p_A <- gsheet2tbl(urlA) 
p_B <- gsheet2tbl(urlB) 
p_C <- gsheet2tbl(urlC) 
p_D <- gsheet2tbl(urlD) 
p_E <- gsheet2tbl(urlE) 

paintingList <- list(p_A, p_B, p_C, p_D, p_E) 


A_date <- split(p_A, format(as.Date(p_A$date), "%Y-%m")) 
B_date <- split(p_B, format(as.Date(p_B$date), "%Y-%m")) 
C_date <- split(p_C, format(as.Date(p_C$date), "%Y-%m")) 
D_date <- split(p_D, format(as.Date(p_D$date), "%Y-%m")) 
E_date <- split(p_E, format(as.Date(p_E$date), "%Y-%m")) 

server.R 코드 :

shinyServer(function(input, output) { 
    productInput <- reactive({ 
    switch(input$painting, 
     "A" = p_A, 
     "B" = p_B, 
     "C" = p_C, 
     "D" = p_D, 
     "E" = p_E) 
}) 

output$paintDate <- renderUI({ 
    if (input$painting == "A"){ 
    selectInput("pdate", "Select a date", names(split(p_A, format(as.Date(p_A$date), "%Y-%m")))) 
} else if(input$painting == "B") { 
    selectInput("pdate", "Select a date", names(split(p_B, format(as.Date(p_B$date), "%Y-%m")))) 
} else if(input$painting == "C"){ 
    selectInput("pdate", "Select a date", names(split(p_C, format(as.Date(p_C$date), "%Y-%m")))) 
} else if(input$painting == "D"){ 
    selectInput("pdate", "Select a date", names(split(p_D, format(as.Date(p_D$date), "%Y-%m")))) 
} else if(input$painting == "E"){ 
    selectInput("pdate", "Select a date", names(split(p_E, format(as.Date(p_E$date), "%Y-%m")))) 
} else { 
    return() 
} 

}) 

output$paintplot <- renderPlot({ 
    validate(need(input$pdate, "")) 
    plot(as.formula(paste("date ~ ", input$pdate)), data = A_date) 
}) 

ui.R 코드 :

shinyUI(fluidPage(
includeCSS("css/main.css"), 
navbarPage("Plot", 
      tabPanel("ggPlot", 
        sidebarLayout(
         sidebarPanel(
         #add choices 
         selectInput("painting", "Select a option:", 
            choices = c("A", "B", "C", "D", "E")), 
         uiOutput("paintDate") 
        ), 

         mainPanel(
          plotOutput("paintplot")) 
        ) 
        ) 
      )) 
)) 

오류 메시지 :

경고 : terms.formula 오류 : ExtractVars

내가 열 디스플레이 플롯의 데이터를 선택하려는 잘못된 모델 식.

내 선택을 플롯에 표시하는 방법은 무엇입니까?

참조 예 : http://shiny.rstudio.com/gallery/unicode-characters.html

제발 도와주세요. 감사.

답변

1

오류 메시지는 사용자의 수식에 대한 공식으로 인해 발생합니다. 나는 당신이 정말로 무엇인지 잘 모르겠다. 그러나 데이터를 살펴본 후에, 플롯 명령을 조금 바꿔서 합리적으로 일하는 것을 찾고있다.

그래서이 새 서버 코드 :

server.R

shinyServer(function(input, output) { 
    productInput <- reactive({ 
    switch(input$painting, 
      "A" = p_A, 
      "B" = p_B, 
      "C" = p_C, 
      "D" = p_D, 
      "E" = p_E) 
    }) 

    output$paintDate <- renderUI({ 
    if (input$painting == "A"){ 
     selectInput("pdate", "Select a date", names(split(p_A, format(as.Date(p_A$date), "%Y-%m")))) 
    } else if(input$painting == "B") { 
     selectInput("pdate", "Select a date", names(split(p_B, format(as.Date(p_B$date), "%Y-%m")))) 
    } else if(input$painting == "C"){ 
     selectInput("pdate", "Select a date", names(split(p_C, format(as.Date(p_C$date), "%Y-%m")))) 
    } else if(input$painting == "D"){ 
     selectInput("pdate", "Select a date", names(split(p_D, format(as.Date(p_D$date), "%Y-%m")))) 
    } else if(input$painting == "E"){ 
     selectInput("pdate", "Select a date", names(split(p_E, format(as.Date(p_E$date), "%Y-%m")))) 
    } else { 
     return() 
    } 

    }) 

    output$paintplot <- renderPlot({ 
    validate(need(input$pdate, "")) 
    df <- data.frame(A_date[[input$pdate]]) 
    plot(as.Date(df$date),df$pop) 
    }) 

}) 

그리고이 음모 산출 : 나는 모든 urlB을 변경보다

enter image description here

기타, urlCglobal.R과 동일하게 작동하도록하려면 urlA과 동일해야합니다. 그래서 나는 그것을 시험 할 수 있었다.

+0

감사합니다. 그렇습니다. 그러나 다른 데이터를 판단하는 방법은 무엇입니까? 'df <- data.frame (A_date [[input $ pdate]]'는 고정 변수입니다. –

+0

안녕하세요, Mike Wise. 갑자기 깨달았습니다. 도와 줘서 고마워. –

관련 문제