我想选择一个特征和模型(从侧边栏下拉菜单中选择),并能够将模型传递到特定的输出,在此输出我打印模型的摘要并显示模型以图形方式拟合的程度。我目前在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())
})
答案 0 :(得分:2)
您可以使用lm
将formula
来电中的字符串转换为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())
})
})
)