具有交互式均线的 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
)
我是 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
)