修改 Rmarkdown 表中的位数 (kable)

Modifying number of digits in Rmarkdown tables (kable)

我有一个 dataframe 和不同数量的 digits。例如:

df = data.frame(a = c(0.0003, 4, 23.22, 50000))

当我使用 knitr::kable 我得到这个 table:

knitr::kable(df)

|         a|
|---------:|
| 3.000e-04|
| 4.000e+00|
| 2.322e+01|
| 5.000e+04|

问题是我希望 c(0.0003, 4, 23.22, 50000) 中的所有值都按原样显示(例如,没有科学记数法)。

我试过使用:

options(scipen = 1000)

这去掉了科学计数法,但增加了一个新问题:

knitr::kable(df)

|          a|
|----------:|
|     0.0003|
|     4.0000|
|    23.2200|
| 50000.0000|

在这里,我不想4 显示为 4.0000。我该如何解决这个问题?

你可以试试这个,将它们转换成 character:

df = data.frame(a = as.character(c(0.0003, 4, 23.22, 50000)))

无法显示小数位数不同的数字,为此您可能需要将数字转换为字符。

library(dplyr)

df %>%
  mutate(b = case_when(a %% 1 != 0 ~ formatC(a, 4), 
                       TRUE ~ as.character(a)))

#           a      b
#1     0.0003 0.0003
#2     4.0000      4
#3    23.2200  23.22
#4 50000.0000  50000