我正在做一个学校项目,其中有一些dyplr查询,需要使用Shiny库使它们互动。现在,我在dyplr中有一个查询,在这里我可以从印度外卖餐厅看到每个国家的收入。我有以下查询:
```
df %>%
group_by(Origin, Jaar = year(Order.Date), Maand = month(Order.Date, label = TRUE), Kwartaal = quarter(Order.Date)) %>%
summarize(omzet = sum(regelomzet)) %>%
ggplot(aes(reorder(Origin, omzet), omzet)) +
facet_grid(~Jaar) +
geom_col() +
ggtitle("Omzet per land van herkomst") +
coord_flip() +
theme(axis.text.x = element_text(angle = 90))
```
这给了我以下输出:
现在,如果将facet_grid更改为kwartaal
(一年中的四分之一),则会得到以下输出:
现在,我想将此图应用于交互式Shiny应用程序中。我为此使用以下代码:
```
```{r}
library(shiny)
ui <- fluidPage(
titlePanel("Indian takeaway"),
navlistPanel("Kies een plot",
tabPanel("Omzet per land van herkomst",
selectInput(inputId = "Select_unit",
label = "Selecteer op basis van wat je de grafiek wilt zien",
choices = c("Jaar", "Kwartaal", "Maand"),
selected = "Jaar"
),
plotOutput(outputId = "plot3")
)
)
)
server <- function(input, output, session) {
output$plot3 <- renderPlot({
df %>%
group_by(Origin, Jaar = year(Order.Date), Maand = month(Order.Date, label = TRUE), Kwartaal = quarter(Order.Date)) %>%
summarize(omzet = sum(regelomzet)) %>%
ggplot(aes(reorder(Origin, omzet), omzet)) +
facet_grid(~input$Select_unit) +
geom_col() +
ggtitle("Omzet per land van herkomst") +
coord_flip() +
theme(axis.text.x = element_text(angle = 90))
})
}
shinyApp(ui, server)
```
在这里,我做了一个切片器,并在Shiny应用程序上显示了情节。要更改facet_wrap,我现在使用链接到输入框的输入函数,如果我在输入框中更改变量,我希望它能像上面的两张图片一样显示图形。 现在,如果我启动了闪亮的应用程序,您会看到,即使标准变量上也没有任何facet_grid。我的问题是为什么要这样做,因为我确实将其包括在查询中。因为我不知道,我不知道该如何解决这个问题,并且已经在Google上进行了搜索,但是找不到任何帮助
答案 0 :(得分:0)
我在另一个堆栈溢出后发现了以下信息: R Shiny: Issue with facet_wrap in ggplot
我使用facet_grid(~input$Select_unit)
,使用下面的代码行,问题将得到解决
facet_grid(~get(input$Select_unit))