2016-11-06 1 views
2

に、私は次の内容の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)で定義されている幅オプションは最後のチャンクには影響しません。これを解決するには?

答えて

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

あなたは*言う
0

通常はoptions(width = 20)は機能しますが、機能を印刷するときは機能しません。 cat(deparse(f2, width = 20), sep = "\n")

+0

ではなく、機能*を印刷します。しかし、 'show_f1'という名前のチャンクは関数を出力し、widthオプションはこのチャンクに対して機能します。 –

+0

f1を印刷する行の直前に 'options(width = 50)'を入れても、20文字幅のf1が表示されます。 'knitr'は' R.options = list(width = 20) 'の設定で特別なことをしています。これは' options(width = 20) 'と同じではありません。 – user2554330

+0

とにかく、 'cat(deparse(f2、width = 20)、sep =" \ n ")'のようなものを使用したくないのです。これは私のhtml文書の読者にとって快適ではありません(この読者は、流暢なRユーザーで 'cat(deparse ...)'のようなコードを理解できるとは思われません)。私は本当に読者が 'f2'とタイプすると表示される' f2'関数のコードを見たいと思っています。 –

関連する問題