如何使用 kable 格式化位数

How to format number of digits with kable

我想使用 3 位数字来格式化 xy:例如对于 x 我想获得 0.035、0.790、0.453。

我尝试使用以下方法,但没有成功:

---
title: "format 3 digits"
output:
  word_document: default
---

```{r echo=FALSE,message=FALSE, warning=FALSE}
library(tidyverse)
library(knitr)

df <- tibble(x = c(0.0345, 0.7898, 0.4534),
             y = c(-0.0345, -0.7898, -0.4534),
             z = c(1, 2, 3))
df %>%
  mutate_if(is.numeric, format, digits=3, nsmall=0) %>%
  kable(.)
```

尝试

df %>%
  kable(digits = 3)

此外,_if_all 等动词已在 dplyr >= 1.0.0 中被 across 取代。

响应LMc的解决方案。这是一个使用 across.

的选项
library(tidyverse)
library(knitr)

df <- tibble(x = c(0.0345, 0.7898, 0.4534),
             y = c(-0.0345, -0.7898, -0.4534),
             z = c(1, 2, 3))
df %>%
  mutate(across(where(is.numeric), ~ round(., digits = 3))) %>%
  kable(.)