【发布时间】:2018-09-02 13:30:01
【问题描述】:
是否可以使用flexitable用一行脚本格式化多个列?
该示例包括两种不同类型的双精度变量。我愿意:
- 将大于 1000 的变量舍入到最接近的 1000 并添加千位逗号格式,并且
- 小于一到两位小数的四舍五入变量
这使用 flextable 相对简单,但是对于更大的数据集来说会变得很麻烦。我找不到更有效的方法。
我可以使用 dplyr 来预处理数据(尽管逗号格式需要将变量类型从双精度更改为字符)。 如果可能的话,我更喜欢在 flextable 中执行此操作。 我知道 Huxtable 可以进行多列格式设置。 用户是否可以创建定制的 set_formatter_type 函数?
MWE
set.seed(100)
tib <- tibble(a = letters[1:4],
b = runif(4)*sample(c(10000, 1000000, 10000000), 4, replace = TRUE),
c = runif(4)*sample(c(10000, 1000000, 10000000), 4, replace = TRUE),
d = runif(4)*sample(c(10000, 1000000, 10000000), 4, replace = TRUE),
e = runif(4),
f = runif(4))
regulartable(tib) %>%
set_formatter(b = function(x) format(round(x, -3), big.mark = ",")) %>%
set_formatter(c = function(x) format(round(x, -3), big.mark = ",")) %>%
set_formatter(d = function(x) format(round(x, -3), big.mark = ",")) %>%
set_formatter(e = function(x) round(x, 2)) %>%
set_formatter(f = function(x) round(x, 2)) %>%
print(preview = "docx")
【问题讨论】: