在RMarkdown中,是否可以从for
循环或函数内部使用ggplotly()
或datatable()
?例如:
---
title: "Using `ggplotly` and `DT` from a `for` loop in Rmarkdown"
output: html_document
---
```{r setup, include=FALSE}
library(ggplot2); library(DT)
```
## Without `for` loop - works
```{r}
datatable(cars)
g <- ggplot(cars) + geom_histogram(aes_string(x=names(cars)[1] ))
ggplotly(g)
```
## From inside the `for` loop - does not work (nothing is printed)
```{r}
for( col in 1:ncol(cars)) {
datatable(cars) # <-- does not work
print( datatable(cars) ) # <-- does not work either
g <- ggplot(cars) + geom_histogram(aes_string(x=names(cars)[col] ) )
ggplotly (g) # <-- does not work
print ( ggplotly (g) ) # <-- does not work either
}
```
我在想,可能是因为 交互式 输出设计上无法通过 print
来打印。
当打印非交互式输出时,不存在这样的问题。
PS
这与以下内容有关:
使用R自动化生成预格式文本的Rmarkdown
在rmarkdown中循环标题/部分
.Rmd
文件中的for
循环中使用ggplotly
不起作用)。 https://github.com/ropensci/plotly/issues/570 - 看起来问题仍未解决 :( - IVIM