为特定列格式化 Flextable 中的数字
Formatting Numbers in Flextable for Specific Columns
我在 RStudio 中使用 R 版本 3.6.1。我有 flextable 版本 0.5.5 和 officer 版本 0.3.5.
我在 RMarkdown 的 flextables 中格式化我的数字时遇到困难。默认情况下,所有数字都保留 3 位小数。对于我的一些数字,这很好(实际上是首选),但对于其他数字,我想删除小数点。
使用找到的建议 我能够调整我的 table 以便所有数字都四舍五入到最接近的整数。我的代码如下(示例 table 用于再现性;否则格式与我当前的代码相同)。
ft_test <- head(iris) %>% flextable() %>%
hline(part = 'header', border = fp_border(color = "black", width = 3)) %>%
align(align ='center', part = 'all') %>%
align(j = 1, align ='left', part = 'all') %>%
set_formatter_type(fmt_double = "%.0f")
ft_test
但是,我只希望某些列是整数,而其他列仍然有小数。我试过使用 j
参数来调用某些列:
ft_test <- head(iris) %>% flextable() %>%
hline(part = 'header', border = fp_border(color = "black", width = 3)) %>%
align(align ='center', part = 'all') %>%
align(j = 1, align ='left', part = 'all') %>%
set_formatter_type(fmt_double = "%.0f", j = 2)
ft_test
... 但随后我收到一条错误消息,告诉我 j = 2
是一个未使用的参数。
关于如何仅调整 some 列的数量有什么建议吗?预先感谢您的帮助!
您不能使用参数 j
,因为它不是 set_formatter_type
的参数。该功能是为一种或多种数据类型设置格式化程序。在你的情况下,最好使用 colformat_num
.
library(flextable)
library(officer)
library(magrittr)
ft_test <- head(iris) %>% flextable() %>%
hline(part = 'header', border = fp_border(color = "black", width = 3)) %>%
align(align ='center', part = 'all') %>%
align(j = 1, align ='left', part = 'all') %>%
colformat_num(j = c("Sepal.Length", "Sepal.Width",
"Petal.Length", "Petal.Width"), digits = 1)
ft_test
您可以在此处了解有关格式化内容的更多信息:https://davidgohel.github.io/flextable/articles/display.html
我在 RStudio 中使用 R 版本 3.6.1。我有 flextable 版本 0.5.5 和 officer 版本 0.3.5.
我在 RMarkdown 的 flextables 中格式化我的数字时遇到困难。默认情况下,所有数字都保留 3 位小数。对于我的一些数字,这很好(实际上是首选),但对于其他数字,我想删除小数点。
使用找到的建议
ft_test <- head(iris) %>% flextable() %>%
hline(part = 'header', border = fp_border(color = "black", width = 3)) %>%
align(align ='center', part = 'all') %>%
align(j = 1, align ='left', part = 'all') %>%
set_formatter_type(fmt_double = "%.0f")
ft_test
但是,我只希望某些列是整数,而其他列仍然有小数。我试过使用 j
参数来调用某些列:
ft_test <- head(iris) %>% flextable() %>%
hline(part = 'header', border = fp_border(color = "black", width = 3)) %>%
align(align ='center', part = 'all') %>%
align(j = 1, align ='left', part = 'all') %>%
set_formatter_type(fmt_double = "%.0f", j = 2)
ft_test
... 但随后我收到一条错误消息,告诉我 j = 2
是一个未使用的参数。
关于如何仅调整 some 列的数量有什么建议吗?预先感谢您的帮助!
您不能使用参数 j
,因为它不是 set_formatter_type
的参数。该功能是为一种或多种数据类型设置格式化程序。在你的情况下,最好使用 colformat_num
.
library(flextable)
library(officer)
library(magrittr)
ft_test <- head(iris) %>% flextable() %>%
hline(part = 'header', border = fp_border(color = "black", width = 3)) %>%
align(align ='center', part = 'all') %>%
align(j = 1, align ='left', part = 'all') %>%
colformat_num(j = c("Sepal.Length", "Sepal.Width",
"Petal.Length", "Petal.Width"), digits = 1)
ft_test
您可以在此处了解有关格式化内容的更多信息:https://davidgohel.github.io/flextable/articles/display.html