2016-05-03 4 views
1

私はui.Rにこのコードを持っている:数値入力はRに先験的に動作しない光沢のある

tabPanel("Experiment 1",sidebarPanel(numericInput("supp", "Vložte hodnotu support", 0.0001, min = 0.0001, max = 0.8, step = 0.0001), 
         numericInput("conf", "Vložte hodnotu confidence", 0.0001, min = 0.0001, max = 0.8, step = 0.0001)), 

とserver.Rでこのコード:

rules.all <- apriori(d, parameter=list(support=input$supp, confidence=input$conf)) 

library(arulesViz) 

output$scatterPlot = renderPlot(
plot(rules.all, method = 'scatterplot') 
) 

私はこのエラーがあります: numericInputのサポートと信頼度の値を変更すると、R shinyは散布図を表示しませんでした。なぜそれは動作しませんでしたか? お願いします。

答えて

0

この数行のコードから、反応しない環境でUIからの入力にアクセスしようとしていることがわかります。許可されておらず、光沢があるとエラーになります。あなたは

apriori(d, parameter=list(support=input$supp, confidence=input$conf)) 

データセットを使用すると、1つのウィジェットと対話するたびに更新されます置くべき(rules.all例えば)反応性データセットを作成するために持っていて、その後、rules.all()

ですべての render*機能にアクセスすることができます
plot(rules.all(), method = 'scatterplot') 

あなたは私が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) 
のリファレンスから例のデータセット Groceriesを使用するデータを提供していませんでしたので、
0

おかげでたくさん...しかし、私はアプリオリの後ろにこれらの操作を行うと、画面上の散布図を作成する必要があります。

quality(rules.all) <- round(quality(rules.all), digits=3) 

top.support <- sort(rules.all, decreasing = TRUE, na.last = NA, by = "support")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] 

rules.all = rules.pruned 

rules.sorted = sort(rules.all, by="lift") 

rules.all = rules.sorted 

(への入力のための私のデータセットaprioriは "d"と呼ばれます)

私はこのコードで何をしなければなりませんか?

関連する問題