【问题标题】:How to generate a graph html widget for apriori rules visulization within rmarkdown compiler with a for loop with R?如何在带有 R 的 for 循环的 r markdown 编译器中为先验规则可视化生成图形 html 小部件?
【发布时间】:2020-05-24 02:53:31
【问题描述】:

我一直在尝试在 rmarkdown html 编译器中生成一系列图表...

```{r, include=T, echo=F, fig.height=4, fig.width=10,warning=FALSE}

这里的direct是列出文件的目录

"files" 是 read.transaction 函数参数所需的事务形式的文件对象列表

direct <- "......"
files <- list.files(path = ".....")
 for (i in 1:length(files)) {

    tr<-read.transactions(file = paste(as.character(direct),"/",files[i],sep = ""),format = "basket",sep = ",")

    rules <- apriori(tr, parameter = list(supp=sup, conf=confid))
    rules <- sort(rules, by='count', decreasing = TRUE)

    plotr <- plot(rules, method = "graph",  engine = "htmlwidget")


  }


```

我尝试过 print(plotr),只打印 plot(rules,...),但似乎没有任何效果。

问题是当我编织降价时,不同事务文件的图不会在 .Rmd 文件生成的 html 中弹出。考虑这个循环在一个在块内运行的函数内。

如果有人可以帮助我尝试解决这个问题,那就太好了。如果它值得,我正在尝试生成一个报告,该报告根据应用于不同文件的先验算法返回不同的绘图规则。

如果有人知道如何解决这个问题,那将是一个很大的帮助,谢谢。

【问题讨论】:

    标签: r for-loop plot r-markdown apriori


    【解决方案1】:

    要将多个 htmlWidgets 放在一个 RMarkdown 块中,您需要创建一个标记列表。这是一个例子:

    ---
    title: "Example RMarkdown with multiple arulesViz htmlWidgets in one chunk"
    output: html_document
    ---
    
    
    ```{r}
    library(arulesViz)
    
    data(Groceries)
    rules <- apriori(Groceries, parameter=list(support=0.001, confidence=0.8))
    
    widget_list <- lapply(1:10, FUN = function(i) 
        plot(sample(rules, size = 10), method = "graph", engine = "htmlwidget"))
    
    htmltools::tagList(widget_list)  
    ``` 
    

    您还可以使用常规循环来填充列表。有关此问题的更多信息,请访问https://github.com/rstudio/DT/issues/67

    要在生成的文档中隐藏来自libraryapriori 的消息,您可以这样做:

    ---
    title: "Example RMarkdown with multiple arulesViz htmlWidgets in one chunk"
    output: html_document
    ---
    
    
    <!-- Hide the messages for library -->
    ```{r, echo = FALSE, results = FALSE, warning = FALSE, message = FALSE}
    library(arulesViz)
    ```
    
    <!-- verbose = FALSE hides the progress report for apriori -->
    ```{r}
    library(arulesViz)
    data(Groceries)
    rules <- apriori(Groceries, parameter=list(support=0.001, confidence=0.8), 
      control = list(verbose = FALSE))
    
    widget_list <- lapply(1:10, FUN = function(i) 
        plot(sample(rules, size = 10), method = "graph", engine = "htmlwidget"))
    
    htmltools::tagList(widget_list)  
    ``` 
    

    【讨论】:

    • 有什么办法可以避免打印:“## Apriori ## ## 参数说明:## confidence minval smax arem aval originalSupport maxtime support minlen ## 0.8 0.1 1 none FALSE TRUE 5 0.001 1 ## maxlen target ext ## 10 rules FALSE ## ## Algorithmic control:..." apriori 产生的所有这部分代码?
    • @ArielHiramGómezLópez 我添加了一个示例,该示例创建一个没有消息和警告的干净文档。
    猜你喜欢
    • 1970-01-01
    • 2021-04-17
    • 2021-12-24
    • 2017-08-20
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多