[英]Generate dynamic R-Markdown blocks with data.table objects
我想通過R Markdown中的Species循環自動化這段代碼。
---
title: "R Notebook"
output:
html_document:
df_print: paged
---
```{r setup, echo=FALSE}
library(knitr)
library(data.table)
iris.dt <- data.table(iris)
iris.species <- stringr::str_to_title(as.character(unique(iris.dt$Species)))
```
### View by Species {.tabset .tabset-fade .tabset-pills}
#### Setosa
```{r}
iris.dt[Species == 'setosa']
```
#### Versicolor
```{r}
iris.dt[Species == 'versicolor']
```
#### Virginica
```{r}
iris.dt[Species == 'virginica']
```
我可以使用knit_expand
生成選項卡(實際上我的問題類似於這個生成動態R Markdown塊 )但我很難顯示其他輸入,如data.table。 這是我的嘗試:
### View by Species automated {.tabset .tabset-fade .tabset-pills}
```{r run-numeric-md, include=FALSE}
out = NULL
for (i in iris.species) {
out = c(out, knit_expand(text='#### {{i}}'))
}
```
`r paste(knit(text = out), collapse = '\n')`
這里是筆記本的概述。
謝謝您的幫助。
如果我也生成R塊,它對我有用:
---
title: "R Notebook"
output:
html_document:
df_print: paged
---
```{r setup, echo=FALSE}
library(knitr)
library(data.table)
iris.dt <- data.table(iris)
iris.species <- as.character(unique(iris.dt$Species))
```
### View by Species automated {.tabset .tabset-fade .tabset-pills}
```{r run-numeric-md, include=FALSE}
out <- vector(mode = "character", length = length(iris.species))
for (i in iris.species) {
out[i] <- knit_expand(text = c("#### {{stringr::str_to_title(i)}}",
"```{r, echo = FALSE}",
"iris.dt[Species == '{{i}}']",
"```"))
}
```
`r paste(knit(text = out), collapse = '\n')`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.