在块中调用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字符宽的f1knitr
正在使用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
```