Я использую следующий набор данных: https://docs.google.com/spreadsheets/d/1C_P5xxzYr7HOkaZFfFiDhanqDSuSIrd2UkiC-6_G2q0/edit#gid=0Проблема с Reactive входа в ShinyDashboard
Я использую ShinyDashboard
и у меня есть selectInput
, что позволяет мне выбрать определенный тип моноблока (в колонке Candy в моих данных задавать).
Как взять этот выбор Candy, а затем составить график, который содержит частоту для выбранной конфеты в течение каждого месяца покупки? В моем server.R
я не уверен, что нужно иметь в этом реактивном элементе CandyCount
.
Мой код выглядит следующим образом:
## ui.R ##
library(shinydashboard)
library(rCharts)
dashboardPage(
dashboardHeader(title = "Dashboard"),
dashboardSidebar(
width = 150,
sidebarMenu(
menuItem("Dashboard", tabName = "dashboard", icon = icon("bar-chart"))
)
),
dashboardBody(
sidebarPanel(
htmlOutput("candy")
),
mainPanel(
showOutput("plot2", "polycharts")
)))
##server.R##
server <- function(input, output, session) {
output$candy<- renderUI({
selectInput(
inputId = "candy",
label = "Candy: ",
choices = as.character(unique(dataset$Candy)),
selected = "Twix"
)
})
output$plot2 <- renderChart2({
candySelect<- input$candy
df <- dataset[dataset$candy == candySelect,]
p2 <- rPlot(freq~purchase_month, data = df, type = 'line')
p2$guides(y = list(min = 0, title = ""))
p2$guides(y = list(title = ""))
p2$addParams(height = 300, dom = 'chart2')
return(p2)
})
}
используйте переменную для хранения выбранной конфеты 'candyChosen <- input $ candy', а затем отфильтруйте свой набор данных с помощью выбранной конфеты. – tospig
Должно ли все это происходить внутри элемента «реактивный»? – Gary
не обязательно. вы можете сделать это внутри функции «renderPlot», что-то вроде: 'output $ candyPlot <- renderPlot ({candyChosen <- input $ candy; <данные фильтра и создать график>})' – tospig