我正在RMarkdown中工作,尝试以循环方式使用 htmlTable 包中的htmltables
呈现文档。当我按下RStudio中的“编织”按钮时,一切正常。但是,当我使用render()
函数时,不会打印循环中的htmltables
,但是会打印循环之前的表。
我读到了“编织”按钮,并且渲染功能执行的操作相同,所以我不明白这是怎么回事?
这是带有.Rmd
的{{1}}文件的工作示例:
hmtlTables
我需要使用不同的参数自动生成许多报告,因此需要与---
output: html_document
---
## htmlTables
```{r, results='asis'}
library(data.table)
library(htmlTable)
library(ggplot2)
a <- data.table(matrix(seq(1, 100, 5), ncol = 2))
htmlTable(a)
for (i in 10:11) {
cat( paste('## title no.', i, '\n' ) )
print(ggplot(a*i, aes(x = V1, y = V2)) + geom_point())
print(htmlTable(a*i))
cat('\n')
}
```
一起使用。
答案 0 :(得分:0)
htmlTable定义了一个print
方法,该方法似乎可以在新窗口中打印表格,将print()
更改为writeLines()
可以达到目的:
---
output: html_document
---
## htmlTables
```{r, results='asis'}
library(data.table)
library(htmlTable)
library(ggplot2)
a <- data.table(matrix(seq(1, 100, 5), ncol = 2))
htmlTable(a)
for (i in 10:11) {
cat( paste('## title no.', i, '\n' ) )
print(ggplot(a*i, aes(x = V1, y = V2)) + geom_point())
writeLines(htmlTable(a*i))
cat('\n')
}
```
但是我仍然觉得有些奇怪,因为我相信编织按钮在幕后使用了rmarkdown :: render(),但是在这种情况下它们具有不同的行为。