2017-09-14 141 views
0

我想創建一個閃亮的Web應用程序進行關聯挖掘。我想要做的一件事是從包arulesVIZ實現一個交互式圖。ArulesVIZ交互式陰謀 - 閃亮的R

所以我有以下代碼:

library(shiny) 
    library(DT) 
    library(data.table) 
    library(arules) 
    library(arulesViz) 

    df_transac <-read.table("C:/Users/pauljacq/Desktop/splits/Association  files/ns_transactions.csv",header=T, sep=",") 
    t<-read.transactions("C:/Users/pauljacq/Desktop/splits/Associationfiles/ns_transactions.csv", format='single',cols=c('shipment_archive_id','ASIN'),sep=",") 

    rules_t <- apriori(t, 
       parameter = list(support = 0.0001, confidence = 0.0001, minlen=2, maxlen=5, ext=TRUE), 
       control = list(verbose=TRUE)) 

    rules_table<-data.table(lhs=labels(lhs(rules_t)), rhs=(labels(rhs(rules_t))), quality(rules_t)) 

    ui<- basicPage(
     mainPanel(
     tabsetPanel(
      tabPanel("File", DT::dataTableOutput("df_transac")), 
      tabPanel("Rules", DT::dataTableOutput("rules")), 
      tabPanel("Graph", plotOutput("graph")) 
     ) 
    ) 
    ) 

    server <- function(input, output) { 
     output$df_transac = DT::renderDataTable({ 
     df_transac 
     }) 
     output$rules = DT:: renderDataTable({ 
     rules_table 
     }) 
     output$graph = renderPlot({ 
     plot(rules_t,method="scatter",interactive=T) 
     }) 
    } 
    shinyApp(ui=ui,server=server) 

該應用程序的偉大工程時,我有

plot(rules_t,method='scatter",interactive=F) 

然而,當我有

plot(rules_t,method='scatter",interactive=T) 

我有以下錯誤:

Error in convertUnit: 'x' argument must be a unit object 

任何解決方案,想法,或參考以前的工作是非常歡迎的。

回答

0

錯誤發生,因爲它似乎有光澤不通過點擊該功能grid.locator位置從包grid。安裝最新的arulesViz版本並使用

plot(rules_t, method = "scatter", engine = "htmlwidget") 

改爲。這將創建一個htmlwidget,並應該在閃亮的工作正常。

+0

感謝您的回答。但是,該小部件將填充到我的RStudio的查看器部分中。不知道如何將它嵌入到實際的應用程序中? –

+0

更新:工作解決方案 因此,engine =「htmlwidget」技巧奏效。雖然我需要從renderPlot/plotOutput更新到renderPlotly/plotlyOutput。 非常感謝@邁克爾·哈斯勒 –