首页 > 解决方案 > 有没有办法在柔性表中设置有效数字显示?

问题描述

我正在尝试为对象设置有效数字显示。

# Select data from a dataframe
ft <- flextable(data, col_keys = c(1,2,3,4)) 
# adjust digit display in columns 3 and 4 of flextable
ft <- colformat_num(ft, j = c(3,4), digits = 4)

但是,此代码段中的 digits 参数设置小数点后的数字,而不是将数字四舍五入为 n 个有效数字。这是来自 Excel 的示例公式:

=ROUND(数字,数字-(1+INT(LOG10(ABS(数字)))))

这可以在flextable命令中重现吗?感谢您的帮助!

标签: rflextable

解决方案


您可以创建格式化程序函数并使用 set_formatter:

library(flextable)

round_and_format <- function(number) {
  rr <- round(number,digits-(1+as.integer(log10(abs(number)))))
  as.character(rr)
}

ft <- flextable(head(iris))
ft <- set_formatter(ft, Sepal.Length = round_and_format, Sepal.Width = round_and_format)
ft <- autofit(ft)
print(ft)

在此处输入图像描述


推荐阅读