r - 有没有办法在柔性表中设置有效数字显示?
问题描述
我正在尝试为flextable对象设置有效数字显示。
# 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
命令中重现吗?感谢您的帮助!
解决方案
您可以创建格式化程序函数并使用 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)
推荐阅读
- c# - 设置窗口大小以适应内容,但阻止窗口宽度超出屏幕宽度
- python - Pandas 系列除以另一个系列,除法前四舍五入到小数点后两位
- javascript - Pub-Sub 模式和消息代理,如何确保所有订阅者完成对事件的处理
- kotlin - Kotlin 中的“val XXX = Class { ...”是什么意思?
- windows - 什么是信托提供者?
- python - 迭代数据框列
- node.js - 合适的加载器来处理这个文件类型,目前没有配置加载器来处理这个文件。构建期间的下一个 js 配置错误
- java - HttpURLConnection Locally 适用于所有 url,但它不在服务器上
- python - 如何检查它是否是python中的新一天?
- r - 如何重命名R列内的项目?