Пиша .Rmd
файл, който показва както команди за bash, така и Rкоманди. Има ли начин да се разграничат парчетата с R код от тези с bash код? Има опция за плетени парчета, която вмъква командата R в буквата така, че да е
```{R, prompt = "true"}
plot(rnorm(100))
```
става
> plot(rnorm(100))
но за баш парчета това
```{bash, prompt = "true"}
pandoc --version
```
става това
> pandoc --version
когато предпочитам това
$ pandoc --version
Отговори:
6 за отговор № 1Можете да опитате проста кука:
---
output: html_document
---
```{r}
library("knitr")
knit_hooks$set(
prompt = function(before, options, envir) {
options(prompt = if (options$engine %in% c("sh","bash")) "$ " else "R> ")
})
```
```{r, prompt=TRUE}
1+1
```
but for the bash chunks this
```{bash, prompt=TRUE}
pandoc --version | head -1
```
```{r, prompt=TRUE}
1+1
```
И можете да добавите opts_chunk$set(prompt=TRUE)
така че не трябва да продължавате да пишете prompt=TRUE
за всеки парче
2 за отговор № 2
Това е малко неприятно, но току-що осъзнах, че мога да "превключа" на бързината да направя това:
```{r, echo = F}
options(prompt = "$ ")
```
```{bash, eval = F, prompt = T}
pandoc --version
```
```{r, echo = F}
options(prompt = "> ")
```
```{r, eval = F, prompt = T}
plot(rnorm(100))
```
което дава
$ pandoc --version
> plot(rnorm(100))