【发布时间】:2017-03-03 10:19:45
【问题描述】:
我想输入一个category 和一个number 来构建一个模型,以根据不同类别的销售排名预测每日销售额。第一个输入是对我的数据进行子集化以构建模型,第二个输入是作为模型输入的排名。最后,输出是模型的预测结果,即每日销售额。
这是我的 ui.r 和 server.r
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")))
))
(在 server.r 中,我获得了一个带有 col 名称的数据框 'juvo' 'asin' 'AvgQuantity' 'AvgRank1' 'Catgory1')
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()})
})
如前所述,我想通过 input$select 对 juvo 数据帧进行子集化,然后通过 'AvgQuantity' ~ 'AvgRank1' 构建模型。使用构建的模型, input$num 是排名,我想将数量作为输出。
但错误消息是“模型公式中的无效术语”或“无法将类“reactivevalues”强制转换为 data.frame”谢谢。
【问题讨论】: