R 如何通过两个步骤使用用户选择的变量
我在这里包括可复制的例子。我希望用户选择一个变量,该变量将作为参数通过函数传递给group_。然后我要绘制聚合数据。虽然我能够在稍后计算聚合时找到如何引用用户输入,但当我想引用图表中的同一变量时,我不知道如何做。在我的例子中,我需要找到占位符XXXXXXXXXX的正确答案,或者找到不同的解决方案R 如何通过两个步骤使用用户选择的变量,r,shiny,R,Shiny,我在这里包括可复制的例子。我希望用户选择一个变量,该变量将作为参数通过函数传递给group_。然后我要绘制聚合数据。虽然我能够在稍后计算聚合时找到如何引用用户输入,但当我想引用图表中的同一变量时,我不知道如何做。在我的例子中,我需要找到占位符XXXXXXXXXX的正确答案,或者找到不同的解决方案 library(shiny) ui <- fluidPage( selectInput("first","Select variable",c("cyl","gear")),
library(shiny)
ui <- fluidPage(
selectInput("first","Select variable",c("cyl","gear")),
plotOutput("distPlot")
)
server <- function(input, output) {
data<-reactive({
mtcars%>%group_by(!!input$first)%>%summarise(average=mean())
})
output$distPlot <- renderPlot({
ggplot(data(),aes(XXXXXXXXXXXXXX,average))+
geom_bar(stat = 'identity')
})
}
shinyApp(ui, server)```
库(闪亮)
ui当您在group\u by
函数和ggplot的aes
函数中引用输入$first时,您必须写入!!sym(输入$first)
哪一个变量要取平均值
?您只是在指定mean()
刚刚添加了一个闪亮的应用程序,它演示了为什么原始方法不能产生预期的结果
library(shiny)
library(ggplot2)
ui <- fluidPage(
selectInput("first","Select variable",c("cyl","gear")),
plotOutput("distPlot"),
)
server <- function(input, output) {
data<-reactive({
mtcars%>%
group_by(!!sym(input$first)) %>%
summarise(average=mean(mpg))
})
output$distPlot <- renderPlot({
ggplot(data(),aes(x=!!sym(input$first),y=average)) +
geom_bar(stat = 'identity')
})
}
shinyApp(ui, server)
library(shiny)
library(ggplot2)
ui <- fluidPage(
selectInput("first","Select variable",c("cyl","gear")),
tableOutput("wrong"),
tableOutput("correct")
)
server <- function(input, output) {
output$wrong <- renderTable({
mtcars%>%
group_by(!!input$first) %>%
summarise(average=mean(mpg))
})
output$correct <- renderTable({
mtcars%>%
group_by(!!sym(input$first)) %>%
summarise(average=mean(mpg))
})
}
shinyApp(ui, server)