Shiny 应用程序中的动态方差分析,我的输入有误吗?

Dynamic anova in Shiny app, is my input wrong?

data(mtcars)
library(stats)
library(shiny)

# Define UI for application that draws a histogram
ui <- fluidPage(

   # Application title
   titlePanel("Old Faithful Geyser Data"),

   # Sidebar with a slider input for number of bins 
   sidebarLayout(
      sidebarPanel(
            selectizeInput("mtcarsid", "Nehme eine MT Cars category.", choices = colnames(mtcars), selected = colnames(mtcars)[2], multiple = FALSE)
      ),
      # Show a plot of the generated distribution
      mainPanel(
         tableOutput("model"),
         textOutput("text123")
      )
   )
)

# Define server logic required to draw a histogram
server <- function(input, output) {

    output$text123 <- renderText({

    })


    output$model <- renderTable ({

        z <- factor(input$mtcarsid)
        # #print(mtcars[[z]])
        # 
        # print(length(mtcars$mpg))
        # 
        # print(length(mtcars[[z]]))

        x <- aov(mpg ~ factor(mtcars[[z]]), data=mtcars) 
        x <- TukeyHSD(x) 
        print(x)
        x <- as.data.frame(x[[1]][,4] > 0.05)
        x
    })
}

# Run the application 
shinyApp(ui = ui, server = server)

这是我的应用程序,基于我的输入 $mtcarsid 的输入,我想执行一个方差分析,包括。 post-hoc 测试。但是,我的模型似乎完全错误地输入了我的代码。谁能告诉我为什么?

aov(mpg ~ factor(cyl), data = mtcars)

这段代码工作正常。但是当我只使用 factor(input$mtcarsid) 时,我得到一个错误,输入的长度不同(1 对 32)。

一种解决方案是将所选变量转换为调用 aov() 之外的因子。

  output$model <- renderTable ({
    mtcars[["selected"]] = factor(mtcars[[input$mtcarsid]])
    x <- aov(mpg ~ selected, data=mtcars) 
    x <- TukeyHSD(x) 
    print(x)
    x <- as.data.frame(x[[1]][,4] > 0.05)
    x
  })