首页 > 解决方案 > 在R中的flextable包中将数字列格式化为百分比

问题描述

例如我正在使用虹膜数据:

library(flextable)
library(officer)
library(magrittr)

ft_test <- head(iris) %>% flextable() %>% 
  colformat_num(j = c("Sepal.Length", "Sepal.Width",
                             "Petal.Length", "Petal.Width"), digits = 1)

如果我希望使用百分比格式的“Petal.Width”值,正确的语法是什么?我找不到 colformat_percent 函数。有没有办法使用灵活的语法来弥补它?

标签: rflextableofficer

解决方案


set_formatter按照手册中的说明使用虹膜数据 (! )


ft_test <- head(iris) %>% flextable() %>% 
  set_formatter( Petal.Width = function(x) sprintf( "%.1f%%", x*100 ) )

这是手册中的示例部分:


Examples:

     ft <- flextable( head( iris ) )
     ft <- set_formatter( x = ft,
             Sepal.Length = function(x) sprintf("%.02f", x),
             Sepal.Width = function(x) sprintf("%.04f", x)
           )
     ft <- theme_vanilla( ft )
     ft
     


推荐阅读