显示带有超过四位数的内联代码的数字,如
`r 21645`
编织的html文件中的结果是这样的:2.164510^{4}
(实际上在内联钩子中有一个计算结果,导致21645)。即使我只是想要打印数字,如下所示:21645
。我可以轻松解决这个问题,将其包装在as.integer
或format
或print
内,但如何为整个knitr文档设置一个选项,以便打印整个整数(我需要的是打印5位数字)?手动执行此操作非常烦人。设置options(digits = 7)
没有帮助。我猜我必须设置一些chunk-optionor定义一个hook,但我不知道如何
答案 0 :(得分:15)
我已经解决了它,只是在knitr文档开头的setoptions-chunk中包含以下代码行:
options(scipen=999)
解决了这个问题,就像@Paul Hiemstra的回答:
https://stackoverflow.com/a/25947542/4061993
来自?options
的文档:
scipen :整数。决定打印时应用的惩罚 固定或指数表示法中的数值。正值偏差 对科学记数法的固定和否定:固定符号 将是首选,除非它比scipen数字更宽。
答案 1 :(得分:7)
如果您不想在此实例中显示科学记数法,但又不想完全禁用knitr
报告,则可以使用format()
并设置{{1} }:
scientific=FALSE
答案 2 :(得分:5)
请注意,如果您将数字键入为整数,则格式正确:
`r 21645L`
当然,您可以随时设置内联挂钩以获得更大的灵活性(即使最好像在答案中那样设置全局选项):
```{r}
inline_hook <- function(x) {
if (is.numeric(x)) {
format(x, digits = 2)
} else x
}
knitr::knit_hooks$set(inline = inline_hook)
```