web-dev-qa-db-ja.com

科学的記数法なしで整数の桁を表示するknitr

次のように4桁を超えるインラインコードで数値を表示する場合

_`r 21645`
_

編まれたhtmlファイルの結果は次のとおりです:_2.164510^{4}_(実際にはインラインフック内で計算が行われ、結果は21645になります)。数字を出力したいだけなのに、_21645_のように。 _as.integer_またはformatまたはprint内にラップする1つのインスタンスに対してこれを簡単に修正できますが、整数全体を出力するようにknitr-document全体のオプションを設定するにはどうすればよいですか?そのようなものとして(私が必要とするのは5桁を印刷することだけです)?これを手作業で行うのは非常に面倒です。 options(digits = 7)を設定しても役に立ちません。チャンクオプションを設定するか、 hook を定義する必要があると思いますが、方法がわかりません

17
grrgrrbla

数値を整数として入力すると、適切にフォーマットされることに注意してください。

`r 21645L`

もちろん、柔軟性を高めるためにいつでもインラインフックを設定できます(回答のようにグローバルオプションを設定することをお勧めします)。

```{r}
inline_hook <- function(x) {
  if (is.numeric(x)) {
    format(x, digits = 2)
  } else x
}
knitr::knit_hooks$set(inline = inline_hook)

```
5
agstudy

Knitrドキュメントの先頭にあるsetoptions-chunk内に次のコード行を含めるだけで、すでに解決しました。

options(scipen=999)

@Paul Hiemstraからのこの回答の中で読むことができるように、問題を解決します。

https://stackoverflow.com/a/25947542/406199

?optionsのドキュメントから:

scipen:整数。数値を固定表記または指数表記で出力することを決定するときに適用されるペナルティ。正の値は固定に偏り、負の値は科学的記数法に偏ります。固定表記は、1桁以上広い場合を除いて優先されます。

20
grrgrrbla

このインスタンスで科学的記数法を表示したくないが、knitrレポートで完全に無効にしたくない場合は、format()を使用してscientific=FALSEを設定できます。

`r format(21645, scientific=FALSE)`
12
Megatron