如何在Rmarkdown中添加千位分隔符?

3

早上好,

我正在使用Rmarkdown编写一份文档,并希望格式化所有输出表格,以便在HTML渲染中显示"10 000"而不是"10000"。

我主要使用kableExtra包进行工作。你知道是否有特殊的函数可以实现这个吗?

我尝试了以下代码:

kable(tableau_ST_CST, big.mark = " ") %>% kable_styling(full_width = F)

但它没有起作用。

1个回答

3
你可以使用prettyNum
library(tidyverse)
library(knitr)

tibble(nums = 10000:10010) %>% 
  mutate(nums = prettyNum(nums, big.mark = " ")) %>%
  kable()
|nums   |
|:------|
|10 000 |
|10 001 |
|10 002 |
|10 003 |
|10 004 |
|10 005 |
|10 006 |
|10 007 |
|10 008 |
|10 009 |
|10 010 |

其他选项包括formatCformat(两者具有相同的格式),或者简单地使用正则表达式(str_replace_all("100000", pattern = "(\\d)(?=(\\d{3})+$)", "\\1 "))。

是否可以将一个函数应用于整个表而不仅仅是一列? - Zaggamim
有没有可能将一个函数应用于整个表而不仅仅是一列? - Zaggamim
有没有可能将一个函数应用于整个表而不仅仅是一列? - undefined
1
@Zaggamim 你可以使用 mutate(across(everything(), ~ prettyNum(., big.mark = " "))) 来应用到每一列。 - Mark
1
@Zaggamim 你可以使用 mutate(across(everything(), ~ prettyNum(., big.mark = " "))) 将其应用到每一列。 - Mark
1
@Zaggamim 你可以使用mutate(across(everything(), ~ prettyNum(., big.mark = " ")))将其应用到每一列。 - undefined

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