如何使用带有 R 的 for 循环在 r markdown 编译器中生成用于先验规则可视化的图形 html 小部件?
How to generate a graph html widget for apriori rules visulization within rmarkdown compiler with a for loop with R?
我一直在尝试在 rmarkdown html 编译器中生成一系列图表...
```{r, include=T, echo=F, fig.height=4, fig.width=10,warning=FALSE}
这里直接是列出文件的目录
"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,...),但似乎没有任何效果。
问题是当我编写 markdown 时,.Rmd 文件生成的 html 中没有弹出不同交易文件的图表。考虑到这个循环在块内运行的函数内。
如果有人能帮我解决这个问题就好了。如果它有价值,我正在尝试生成一份报告,其中 returns 基于应用于不同文件的先验算法的不同绘图规则。
如果有人知道如何解决这个问题,那将是一个很大的帮助,谢谢。
要将多个 htmlWidget 放入一个 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
要在生成的文档中隐藏来自 library
和 apriori
的消息,您可以这样做:
---
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)
```
我一直在尝试在 rmarkdown html 编译器中生成一系列图表...
```{r, include=T, echo=F, fig.height=4, fig.width=10,warning=FALSE}
这里直接是列出文件的目录
"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,...),但似乎没有任何效果。
问题是当我编写 markdown 时,.Rmd 文件生成的 html 中没有弹出不同交易文件的图表。考虑到这个循环在块内运行的函数内。
如果有人能帮我解决这个问题就好了。如果它有价值,我正在尝试生成一份报告,其中 returns 基于应用于不同文件的先验算法的不同绘图规则。
如果有人知道如何解决这个问题,那将是一个很大的帮助,谢谢。
要将多个 htmlWidget 放入一个 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
要在生成的文档中隐藏来自 library
和 apriori
的消息,您可以这样做:
---
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)
```