2016-10-21 3 views
0

categorynumber을 입력하여 다른 카테고리의 판매 순위별로 일일 판매를 예측하는 모델을 작성하고 싶습니다. 첫 번째 입력은 모델을 빌드하기 위해 데이터를 서브 세트로, 두 번째 입력은 모델의 입력으로 순위입니다. 마지막으로 출력은 모델의 일일 판매량 예측입니다. 여기 두 개의 입력, 빌드 모델 및 출력 결과가있는 반짝이는 앱

내 ui.r 및 server.r 있습니다 (server.r에서, 나는 'ASIN' ''AvgRank1 ''Catgory1을 'AvgQuantity을'COL 이름 을 가진 dataframe 'juvo'를 얻을
library(shiny) 
shinyUI(fluidPage(

titlePanel("Daily Sales Prediction by Sales Rank "), 

selectInput("select", label = h3("Select Category"), 
      choices = list("toy_display_on_website" = 1, "toy_display_on_website" = 2, "toy_display_on_website" = 3), 
      selected = 1), 

hr(), 
#fluidRow(column(3, verbatimTextOutput("value"))), 

    numericInput("num", label = h3("Sales Rank "), value ="100"), 
    hr(), 
    fluidRow(column(3, verbatimTextOutput("value"))) 
)) 

)

shinyServer(function(input, output) { 

juvosub<-reactive({juvo[juvo$Catgory1==input$select,]}) 
m1 <- reactive({glm.nb(as.formula(paste(log10(as.numeric(juvosub()$AvgQuantity))," ~ ",paste(log10(as.numeric(juvosub()$AvgQuantity)),collapse="+"))), 
        data = juvosub())}) 
juvoPredict<-reactive({data.frame(AvgRank1=input$num)}) 
result<-reactive({predict(m1(),juvoPredict(),type = "response") }) 
output$value <- renderPrint({result()}) 

}) 

언급, 나는 $ 입력에 의해 juvo 데이터 프레임을 부분 집합 선택하고 'AvgQuantity'~ 'AvgRank1'하여 모델을 구축하고 싶습니다. 빌드 된 모델을 사용하여 $ num을 입력하면 계급이되며 출력으로 수량을 얻고 싶습니다.

하지만 오류 메시지는 '모델 수식의 용어가 유효하지 않습니다.'또는 '클래스를 강제 변환 할 수 없습니다', 'reactivevalues' '를 data.frame으로'감사합니다.

답변

0

예제 데이터 세트를 제공 할 수 있습니까? 그렇지 않으면 귀하의 질문에 대답하기가 매우 어렵습니다.

즉, 반응식 (객체가 아닌 함수)을 사용하는 방법에 대해 자세히 읽어야합니다. 반응식을 모델의 data 인수에 전달하려고 시도하고 object 인수가 predict() 인 경우 첫 번째 오류 일 가능성이 큽니다. 마찬가지로, 두 번째 오류는 data.frame 인수에 값 대신 반응식을 제공 한 결과 일 수 있습니다.

관련 문제