修改 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
我有一个 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