在块中调用source()的knitr代码块的宽度

在块中调用source()的knitr代码块的宽度,r,knitr,r-markdown,R,Knitr,R Markdown,我有一个名为f2.R的R脚本文件,其中包含以下内容: f2 <- function(Delta, delta, sigma){ pnorm(Delta, mean=delta, sd=sigma) - pnorm(-Delta, mean=delta, sd=sigma) } 这是html输出: 如您所见,由R.options=list(width=20)定义的宽度选项对最后一个块没有影响。如何解决这个问题?通常选项(宽度=20)可以工作,但在打印函数时不行。你需要像这样的东西

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

f2 <- function(Delta, delta, sigma){
  pnorm(Delta, mean=delta, sd=sigma) - pnorm(-Delta, mean=delta, sd=sigma) 
}
这是html输出:

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

通常
选项(宽度=20)
可以工作,但在打印函数时不行。你需要像这样的东西

类别(底面(f2,宽度=20),sep=“\n”)

这里有一个使用
读取块的解决方案

R脚本
f2.R

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

您在打印函数时会说,但不会说。但是,我的名为
show_f1
的区块打印一个函数,并且宽度选项适用于此区块。将
options(width=50)
放在打印f1的行之前,仍然可以看到一个20字符宽的f1
knitr
正在使用
R.options=list(width=20)
设置做一些特殊的事情,它与
options(width=20)
不同。无论如何,我不想使用类似
cat(deparse(f2,width=20),sep=“\n”)
的东西,即使它会给出所需的输出。这对我的html文档的读者来说是不舒服的(顺便说一句,这个读者不是一个能够理解像
cat(deparse…
)这样的代码的流利的R用户)。我真的想让读者看到当我键入
f2
时出现的
f2
函数的代码。编辑f2.R,使f2有20个字符行。它将显示您输入它的方式。2.通过将deparse调用放入echo=FALSE代码块来隐藏它。
# ---- source_f2 ----
f2 <- function(Delta, delta, sigma){
  pnorm(Delta, mean=delta, sd=sigma) - pnorm(-Delta, mean=delta, sd=sigma) 
}
---
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
```