Zoë*_*ark 5 bash r knitr r-markdown
我正在编写一个.Rmd显示bash命令和R命令的文件.有没有办法区分具有R代码的块与具有bash代码的块?有一个knitr chunk选项可以将R命令提示符插入一个块中
```{R, prompt = "true"}
plot(rnorm(100))
```
Run Code Online (Sandbox Code Playgroud)
变
> plot(rnorm(100))
Run Code Online (Sandbox Code Playgroud)
但对于bash大块这个
```{bash, prompt = "true"}
pandoc --version
```
Run Code Online (Sandbox Code Playgroud)
变成了这个
> pandoc --version
Run Code Online (Sandbox Code Playgroud)
当我更喜欢这个
$ pandoc --version
Run Code Online (Sandbox Code Playgroud)
你可以尝试一个简单的钩子:
---
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
```
Run Code Online (Sandbox Code Playgroud)
你可以添加,opts_chunk$set(prompt=TRUE)这样你就不必prompt=TRUE为每个块继续写作