knitr代码块的宽度,在块

时间:2016-11-06 11:40:56

标签: r knitr r-markdown

我有一个名为f2.R的R脚本文件,其中包含以下内容:

f2 <- function(Delta, delta, sigma){
  pnorm(Delta, mean=delta, sd=sigma) - pnorm(-Delta, mean=delta, sd=sigma) 
}

现在,我有以下Rmd文件:

---
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(collapse=TRUE, tidy=TRUE, R.options=list(width=20))
```

```{r define_f1}
f1 <- function(Delta, delta, sigma){
  pnorm(Delta, mean=delta, sd=sigma) - pnorm(-Delta, mean=delta, sd=sigma) 
}
```

```{r show_f1}
f1
```

```{r source_f2}
source("f2.R")
```

```{r show_f2}
f2
```

这是html输出:

enter image description here

如您所见,R.options=list(width=20)定义的宽度选项对最后一个块没有影响。怎么解决这个问题?

2 个答案:

答案 0 :(得分:1)

以下是使用read_chunk的解决方案。

R脚本f2.R

# ---- source_f2 ----
f2 <- function(Delta, delta, sigma){
  pnorm(Delta, mean=delta, sd=sigma) - pnorm(-Delta, mean=delta, sd=sigma) 
}

Rmd文件:

---
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(collapse=TRUE, tidy=TRUE, tidy.opts=list(width.cutoff=20))
```

```{r define_f1}
f1 <- function(Delta, delta, sigma){
  pnorm(Delta, mean=delta, sd=sigma) - pnorm(-Delta, mean=delta, sd=sigma) 
}
```

```{r show_f1}
f1
```

```{r read_f2, include=FALSE}
knitr::read_chunk("f2.R")
```

```{r source_f2, include=FALSE}
```

```{r show_f2}
f2
```

输出: enter image description here

答案 1 :(得分:0)

通常options(width = 20)可以使用,但在打印函数时则不行。你需要类似的东西 cat(deparse(f2, width = 20), sep = "\n")