Я работаю с набором стандартных чайных данных в R и хочу создать блестящее приложение, чтобы представить 2 переменные и их частоту% ge.
Вот мой код R для ggplot, работающий нормально, но когда я пытаюсь инкапсулироватьв этом блестящем коде, похоже, есть проблема.
ggplot(the, aes(x= clust, group=breakfast)) +
geom_bar(aes(y = ..prop.., fill = factor(..x..)), stat="count") +
geom_text(aes( label = scales::percent(..prop..),y= ..prop.. ), stat= "count", vjust = -.5) +
labs(y = "Percent", fill="clust") +
facet_grid(~breakfast) +
scale_y_continuous(labels = scales::percent)
Вот мой блестящий интерфейс: очень простой и эффективный
library(shiny)
# ----- UI ----------------------------
pageWithSidebar(
headerPanel('Representer les variables'),
sidebarPanel(
selectInput('xcol', 'X Variable', names(the)),
selectInput('ycol', 'Y Variable', names(the)),
selected=names(the)[[2]]
),
mainPanel(
plotOutput('plot1')
)
)
Вот мой блестящий сервер, который не работает:
library(shiny)
library(ggplot2)
library(tidyr)
# ---- Server ----------------------------------
server=shinyServer(function(input, output, session) {
selectedData <- reactive({
mutate(group_by(count(the, input$xcol, input$ycol)),
input$xcol, prop = n / sum(n))
})
output$plot1 <- renderPlot({
ggplot(selectedData()) +
geom_col(aes_string(x = input$xcol, y = prop, fill =input$ycol),
position = "dodge")
})
})