在knitr中设置全局千位分隔符

22

我希望默认情况下,我的knitr报告中所有的数字都以以下格式呈现:

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

将小数点的位数默认设置为2并将千位分隔符设置为逗号很容易,我只需要在我的第一个R代码块中设置options(digits = 2, OutDec = ","). 但是,我不知道如何在该格式中将千位分隔符设置为" "(或其他任何内容)。我还尝试过调整opts_chunk,但无法使其正常工作。

当然,我正在尝试避免必须在每个输出中插入format()。毕竟,更智能的格式化是促使我从Sweave转向knitr的原因之一。

如何在knitr中设置默认千位分隔符标记?


2
这似乎是答案:https://groups.google.com/forum/#!msg/knitr/CnFwvk1Qn1E/WY-Xhf7Ph3AJ 我自己还没有开始使用knitr。 - Frank
@agstudy 不错,已经编辑好了。 - Waldir Leoncio
@Frank,这似乎解决了问题,但是在四舍五入数字方面给我一些奇怪的结果。我会尝试微调一下,谢谢。 - Waldir Leoncio
1个回答

33

2
有没有一个可行的示例,可以将钩针嵌入输出中? - Seen
1
我怎样才能为绘图标记做同样的(简单)挂钩? - d8aninja
1
嵌入式表格呢? - gregmacfarlane
12
值得注意的是,此函数期望所有内联代码的输出为数字,但在Rmarkdown文档中可能并非如此。非数字的内联输出将导致文档无法编译。可以通过稍微调整该函数来解决这个问题: knitr::knit_hooks$set(inline = function(x) { if(!is.numeric(x)){ x }else{ prettyNum(round(x,2), big.mark=",") } }) - r.bot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接