2016-12-16 11 views
5

私は、1つの問題を除き、かなりうまく動作する私の最初のRノートブックに取り組んでいます。 私は、セパレータと最大2進ポイントとしてコンマ持ってRノート:opts_chunkは効果がありません

`r realbignumber` 

で番号I出力インラインになりたい:123,456,789.12

これを達成するためには、私が最初にチャンクを追加しました...

```{r setup} 
knitr::opts_chunk$set(echo = FALSE, warning=FALSE, cache = TRUE, message = FALSE) 
knitr::opts_chunk$set(inline = function(x){if(!is.numeric(x)){x}else{prettyNum(round(x,1), big.mark = ",")}}) 
options(scipen=999) 
``` 

科学的数字の抑制はチャームのように機能するので、チャンクは確実に実行されます。ただし、数値のインライン出力の書式設定は機能しません。

それはなぜでしょうか? これらの設定は、一般にRノートブックでは機能しませんか?

編集:

ソリューションはhereも数値の出力形式には影響しません示唆しました。

+0

私は実際にインライン結果をフォーマットするための 'inline'チャンクオプションを見つけることができません。それが議論されているドキュメンテーションを指すことができますか? –

+0

私はこれを見つけたので私の答えを削除しました:http://stackoverflow.com/a/18967590/3022126 – Phil

+0

あなたがリンクしている質問の一番下に記載されているフックを試しました(knitr :: knit_hooks $ set(inline = function( x){if(!is.numeric(x)){x} else {prettyNum(round(x、2)、big.mark = "、"}}}))でも、出力には影響しません。 –

答えて

1

ここでは、R Markdownドキュメントに大きな数字を印刷する2つの方法を示す例です。まず、prettyNum()関数をインラインRチャンクで使用するコード。

Sample document where we test printing a large number. First set the number in an R chunk. 
```{r initializeData} 
theNum <- 1234567891011.03 
options(scipen=999,digits=16) 
``` 

The R code we'll use to format the number is: `prettyNum(theNum,width=23,big.mark=",")`. 

Next, print the large number. `r prettyNum(theNum,width=23,big.mark=",")`. 

チャンクオプションを使用する代わりに、次のように機能します。コードの両方のチャンクがRMDファイルとニットに埋め込まれ

Now, try an alternative using knitr chunks. 

```{r prettyNumHook } 
knitr::knit_hooks$set(inline = function(x) { if(!is.numeric(x)){ x }else{ prettyNum(x, big.mark=",",width=23) } }) 
``` 
Next, print the large number by simply referencing the number in an inline chunk as `theNum`: `r theNum`. 

次のように、出力は、両方の技術は、同じ結果をもたらすことを示しています。

enter image description here

に関して、

レン

関連する問題