具有交互式均线的 Shiny 中的反应性箱线图

Reactive boxplot in Shiny with interactive mean line

我是 R 的新手,一直在尝试一些东西。现在我想制作一个相当简单的闪亮应用程序,目的是询问有关我在 keggle 上找到的数据集的一些问题。该数据集涉及旧金山的薪水。

我的思路如下:

创建箱线图,如下所示:

Categories <- cut(Salaries$TotalPay, breaks = c(0,30000,60000,100000,500000), labels=c("low","mid","high","highest")) boxplot(TotalPay~Categories)

我希望用户 select he/she 想要查看其中的哪些内容或全部内容 he/she。

目前我有:

UI:

library(shiny)

shinyUI(pageWithSidebar(


  headerPanel("Miles Per Gallon"),

  sidebarPanel(
    selectInput("variable", "Variable:",
                list("Low" = "low", 
                     "Mid" = "mid", 
                     "High" = "high",
                     "Highest"= "highest")),

  mainPanel(
    h3(textOutput("caption")),

    plotOutput("Plot")
  )
)
  )
)

服务器:

library(shiny)

Categories <- cut(Salaries$TotalPay, breaks = c(0,30000,60000,100000,500000), labels=c("low","mid","high","highest"))

shinyServer(function(input, output) {


  formulaText <- reactive({
    paste("TotalPay~", input$variable)
  })

  output$caption <- renderText({
    formulaText()
  })


  Plot <- renderPlot({
    boxplot(as.formula(formulaText()), 
            data = Categories
            )
  })
})

我做错了什么?我认为从 "Salaries".

导入数据存在问题

提前致谢:)。

为了澄清我的评论,您使用 libary() 来加载包,但这些包可能是来自 CRAN 或 base R 的数据集。但是对于您的示例,您需要在 server.r文件:

salaries <- read.csv("Salaries.csv")

确保 csv 文件与 ui.r 和 server.r 文件位于同一文件夹中

由于您是 R 的新手并且很闪亮,此示例应用程序可能有助于使用 ui 小部件: https://shiny.rstudio.com/gallery/telephones-by-region.html

请注意,上面的示例使用了 "datasets" 库中的数据集。

编辑:

我注意到其他一些项目提出了一些其他问题。你在 Shiny Server 上部署这个应用程序吗?当我认为它需要更像这样时,您的服务器功能正在使用 ShinyServer:

server <- function(input, output) { 
#server code

shinyApp(ui= ui, server = server)
}

而你的 ui 应该更像这样:

ui <- fluidPage(
#ui code
)