Таблица ANOVA с динамическим вводом в R Shiny

#shiny

#блестящий

Вопрос:

Я пытаюсь создать блестящее приложение, которое выводит таблицу ANOVA на основе динамической числовой переменной, вводимой из iris набора данных.

Это та часть, где я борюсь: aov.model <- aov(input$varNames ~ iris$Species, data = iris)

Вышеуказанное работает, если я заменяю часть динамического ввода на любое из указанных имен переменных:

aov.model <- aov(Sepal.Length ~ Species, data = iris)

Как мне следует обращаться с частью динамического ввода input$varNames ?

Вот полностью рабочий код:

 ui <- fluidPage(
  tabsetPanel(
    tabPanel("ANOVA",
             uiOutput("varNames"),
             verbatimTextOutput("anovaTable")
    )
  )
)

# @
server <- function(input, output) {
  output$varNames <- renderUI({
    selectizeInput("varNames2",
                   "Variables: ",
                   choices = names(iris[, -5])
    )
  })
  
  output$anovaTable <- renderPrint({
    aov.model <- aov(input$varNames ~ iris$Species, data = iris) # Stuck here
    print(aov.model)
    br()
    br()
    print(summary(aov.model))
    cat("Coefficients"); cat("n")
    print(aov.model$coefficients)
  }) 
}

shinyApp(ui, server)
  

Ответ №1:

У вас нет varNames . Так и должно быть input$varNames2 . Кроме того, вы должны называть это как

 aov.model <- aov(iris[[input$varNames2]] ~ iris$Species, data = iris)
  

Затем вы получите следующий вывод:

вывод