【问题标题】:Plotting in second reactive Apriori doesn't work在第二个反应式 Apriori 中绘图不起作用
【发布时间】:2016-05-15 02:58:23
【问题描述】:

我有这些 R 闪亮的代码:

library(shiny)
ui <- fluidPage(
  titlePanel("Asociačné pravidlá pre odporúčanie"),
  navlistPanel(
    tabPanel("Úvod", textOutput("text1")),
    tabPanel("Experiment 1",sidebarPanel(numericInput("supp", "Vložte hodnotu support", 0.0005, min = 0.0001, max = 0.8, step = 0.0001),
                                         sliderInput("conf","Vložte hodnotu confidence",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)),
             tabsetPanel(tabPanel("Generovanie pravidiel", verbatimTextOutput("rules")),
                         tabPanel("Scatter plot", plotOutput("scatterPlot")),
                         tabPanel("Matrix plot", plotOutput("matrixPlot")),
                         tabPanel("Bodový graf", plotOutput("graphPlot")))),
    tabPanel("Experiment 2",sidebarPanel(numericInput("supp2", "Vložte hodnotu support", 0.025, min = 0.0001, max = 0.8, step = 0.0001),
                                         sliderInput("conf2","Vložte hodnotu confidence",0.01, min = 0.01, max = 0.8, step = 0.01)),
             tabsetPanel(tabPanel("Generovanie pravidiel", verbatimTextOutput("rules2")),
                         tabPanel("Scatter plot", plotOutput("scatterPlot2")),
                         tabPanel("Matrix plot", plotOutput("matrixPlot2")),
                         tabPanel("Bodový graf", plotOutput("graphPlot2")))),

    mainPanel()

  ))

server <- function(input, output){

      library(arulesViz)

rules.all <- reactive({
        apriori(d, parameter=list(support=input$supp, confidence=input$conf, minlen=2, maxlen=3))
      })

  rules.all2 <- reactive({
    apriori(d_, parameter=list(support=input$supp2, confidence=input$conf2, minlen=2, maxlen=3))
  })

  # rules <- reactive({inspect(rules.all)
  #   quality(rules.all) <- round(quality(rules.all), digits=3)
  #                   })

  # rules2 <- reactive({inspect(rules.all2)
  #   quality(rules.all2) <- round(quality(rules.all2), digits=3)
  # })


  output$scatterPlot = renderPlot(
    plot(rules.pruned, method = 'scatterplot')
  )
  output$matrixPlot = renderPlot(
    plot(rules.pruned, method="matrix", measure=c("lift", "confidence"))
  )
  output$graphPlot = renderPlot(
    plot(rules.pruned, method="graph")
  )
  output$scatterPlot2 = renderPlot(
    plot(rules.pruned, method = 'scatterplot')
  )
  output$matrixPlot2 = renderPlot(
    plot(rules.pruned, method="matrix", measure=c("lift", "confidence"))
  )
  output$graphPlot2 = renderPlot(
    plot(rules.pruned, method="graph")
  )
  output$text1 = renderText("Táto jednoduchá aplikácia slúži na rýchlejšiu prácu s algoritmom Apriori. Pre každý experiment generuje algoritmus Apriori asociačné pravidlá z iného vhodného dátového súboru.")

  output$rules    <- renderPrint({rules.all() 
    rules.sorted = sort(rules.all(), by="lift")
    subset.matrix = is.subset(rules.sorted, rules.sorted)
    subset.matrix[lower.tri(subset.matrix, diag=T)] = NA
    redundant = colSums(subset.matrix, na.rm=T) >= 1
    rules.pruned = rules.sorted[!redundant]
    inspect(rules.pruned)
  })
  output$rules2   <- renderPrint({rules.all2() 
    rules.sorted = sort(rules.all(), by="lift")
    subset.matrix = is.subset(rules.sorted, rules.sorted)
    subset.matrix[lower.tri(subset.matrix, diag=T)] = NA
    redundant = colSums(subset.matrix, na.rm=T) >= 1
    rules.pruned = rules.sorted[!redundant]
    inspect(rules.pruned)
  })      
}

shinyApp(ui = ui, server = server)

我有两个响应式 Apriori:第一个用于面板“实验 1”,称为“rules”和“rules.all()”,第二个用于面板“实验 2”,称为“rules2”和“rules.all2()” '。

面板“实验 1”的先验和该面板的 3 个图表(散点图、矩阵图、bodový graf)运行正常,面板“实验 2”的先验运行正常。

但是当我单击面板“实验 2”的散点图时,R 会在屏幕散点图上显示面板“实验 1”中的先验数据。

问题出在哪里? 为什么 R 在两个面板中绘制相同的图表?

感谢您的帮助。

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    您不能将单个 sidebarPanels 放在 tabPanels 中(请参阅 here)。相反,您可以拥有一个sidebarPanel,其中的内容以激活的tabPanel 为条件。

    【讨论】:

    • 您好,感谢您的帮助,但我不知道使用您的链接中的数据运行我的第二个先验。你能在我的代码上给我一个很好的例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多