可以将模型传递给闪亮的应用程序中的输出吗?

时间:2015-08-07 17:02:55

标签: r shiny rstudio

我想选择一个特征和模型(从侧边栏下拉菜单中选择),并能够将模型传递到特定的输出,在此输出我打印模型的摘要并显示模型以图形方式拟合的程度。我目前在server.R中有一个反应函数,它检查选择了哪个输入$ model,然后适合模型并返回它。当我尝试从输出$ evaluation调用此反应函数时,我得到错误。我不知道该怎么做。

# server.R

#...

fitter <- reactive({

  df_clean <- dataset() # another reactive function that selects the dataset to be used
  rownames(df_clean) <- df_clean$timestamp
  df_clean$timestamp <- NULL

  if (input$Model == 'Linear'){
    fit <- lm(input$Response ~., data=df_clean)
  }
  #... more if statements checking for other model types

  return(fit)

})

# Model Evaluation

output$Evaluation <- renderPrint({

  summary(fitter())

})

1 个答案:

答案 0 :(得分:2)

您可以使用lmformula来电中的字符串转换为as.formula

library(shiny)

shinyApp(
    shinyUI(
      fluidPage(
        inputPanel(
            selectInput("Model", "Model:", choices=c("Linear", "Other")),
            selectInput("Response", "Response:", choices=c("mpg", "disp"))
        ),
        tableOutput("Evaluation")
      )
    ),
    shinyServer(function(input, output, session) {
        fitter <- reactive({
            df_clean <- mtcars

            if (input$Model == 'Linear'){
                fit <- lm(as.formula(paste(input$Response, "~.")), data=df_clean)
            }
            return(fit)
        })
        output$Evaluation <- renderTable({
            summary(fitter())
        })
    })
)