R Markdown 表格千位分隔符

16

我试图发布一个包含1000分隔符的表格,但是没能成功。我按照这里的链接操作:在knitr上设置全局千位分隔符,但是并没有太大的成功。

我的样本数据在这里:https://goo.gl/G7sZhr

RMarkdown代码在这里:

---
title: "Table Example"
author: "Krishnan Viswanathan"
date: "August 4, 2015"
output: html_document
---

加载数据

{r, results='asis', message = FALSE, tidy=TRUE} load("i75_from_flow.RData") library(data.table)

{r, results='asis', echo=FALSE,message = FALSE, tidy=TRUE} i75_from_flow <- i75_from_flow[order(-Tons),] knitr::kable(i75_from_flow)

但是,当我在RMarkdown文档中包含这一代码块(knit_hook$set)时,会出现错误。

```{r, results='asis', echo=FALSE,message = FALSE, tidy=TRUE}
i75_from_flow <- i75_from_flow[order(-Tons),]
knit_hooks$set(inline = function(x) {
prettyNum(x, big.mark=",")
})
knitr::kable(i75_from_flow)
```

错误:

# object knit_hooks not found.

非常感谢任何关于我做错了什么以及如何修复的见解。

谢谢,

Krishnan

3个回答

25

最简单的方法是使用kable()函数本身的格式参数,您可以像这样指定大号数字标记:

kable(df, format.args = list(big.mark = ","))
如此,您的示例将如下所示:
```{r, results='asis', echo=FALSE,message = FALSE, tidy=TRUE}

i75_from_flow <- i75_from_flow[order(-Tons),]
knitr::kable(i75_from_flow, format.args = list(big.mark = ","))
```

无需使用knitr钩子。


7

使用带有多个选项的 pander 来微调您的 markdown 表格,怎么样?

> pander::pander(i75_from_flow, big.mark = ',')

----------------------------
 ORIGFIPS   TERMFIPS   Tons 
---------- ---------- ------
  12,023     12,117   5,891 

  12,119     12,105   4,959 

  12,001     12,057   3,585 

  12,001     12,113   3,083 

  12,047     12,047   1,517 
----------------------------

4

找不到 knit_hooks 对象的原因是您需要加载 knitr 包或使用 knitr:: 前缀来设置 knit_hooks 选项。例如:

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

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