Из этих нескольких строк кода я вижу, что вы пытаетесь получить доступ к входам из пользовательского интерфейса в неактивной среде. Это недопустимо, и блестящий дает ошибку. Вы должны создать реактивный набор данных (например rules.all
), в котором вы должны разместить
apriori(d, parameter=list(support=input$supp, confidence=input$conf))
Набора данных будут обновляться каждый раз, когда вы взаимодействуете с одним виджетом, а затем вы можете получить доступ к нему в каждой render*
функции с rules.all()
plot(rules.all(), method = 'scatterplot')
Поскольку вы не представили данные, которые я использовал в качестве примера набора данных Groceries
из обращения plot.rules
library(shiny)
library(arulesViz)
ui <- shinyUI(fluidPage(
titlePanel(""),
tabsetPanel(
tabPanel("Experiment 1",
sidebarPanel(
# Changed values of the widgets
numericInput("supp", "Vložte hodnotu support", 0.01,
min = 0.01, max = 0.8, step = 0.01),
numericInput("conf", "Vložte hodnotu confidence", 0.01,
min = 0.01, max = 0.8, step = 0.01))
)
),
mainPanel(
plotOutput("scatterPlot")
)
)
)
server <- shinyServer(function(input, output) {
## You can't access inputs from UI in a not reactive environment.
## rules.all <- apriori(d, parameter=list(support=input$supp, confidence=input$conf))
data("Groceries")
# Create a reactive dataset which you can access in all render* functions
# via rules.all()
rules.all <- reactive({
apriori(Groceries, parameter=list(support=input$supp, confidence=input$conf))
})
output$scatterPlot = renderPlot({
plot(rules.all(), method = 'scatterplot')
})
})
shinyApp(ui = ui, server = server)