17

我希望我的 knitr 报告中的所有数字默认格式化为:

format(num, digits = 2, big.mark = " ", decimal.mark = ",")

将位数默认为 2 并将小数点默认为逗号很容易,我只需要options(digits = 2, OutDec = ",")在我的第一个 R 块中进行设置。但是,我看不到如何" "以这种格式将千位分隔符设置为(或其他任何东西)。我也尝试过调整opts_chunk,但无法正常工作。

当然,我试图避免format()在每个输出中插入,内联或其他。毕竟,更智能的格式化是促使我从 Sweave 转向 knitr 的一件事。

如何在 knitr 上设置默认的千位分隔符?

4

1 回答 1

29

正如弗兰克所指出的,设置如下所示的 knitr hook 可以解决问题:

knit_hooks$set(inline = function(x) {
  prettyNum(x, big.mark=" ")
})

事实证明,knitr hooks 是调整 knitr 上 R 块输出的好方法。真的值得一看http://yihui.name/knitr/hooks

来源:https ://groups.google.com/forum/#!msg/knitr/CnFwvk1Qn1E/WY-Xhf7Ph3AJ

于 2013-09-23T19:49:08.750 回答