Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用flextable r软件包格式化多列_R_Flextable - Fatal编程技术网

使用flextable r软件包格式化多列

使用flextable r软件包格式化多列,r,flextable,R,Flextable,是否可以使用FlexTable使用一行脚本格式化多列 该示例包括两种不同类型的double变量。我想: 将大于1000的变量四舍五入到最接近的1000,并添加千个逗号格式,以及 小于小数点后一到两位的四舍五入变量 使用flextable相对简单,但数据集要大得多,这就成了一个难题。我找不到更有效的方法 我可以使用dplyr预处理数据(尽管逗号格式要求将变量类型从double更改为character)。 如果可能的话,我更喜欢在flextable中执行此操作。 我知道Huxtable可以设置多列格

是否可以使用FlexTable使用一行脚本格式化多列

该示例包括两种不同类型的double变量。我想:

  • 将大于1000的变量四舍五入到最接近的1000,并添加千个逗号格式,以及
  • 小于小数点后一到两位的四舍五入变量
  • 使用flextable相对简单,但数据集要大得多,这就成了一个难题。我找不到更有效的方法

    我可以使用dplyr预处理数据(尽管逗号格式要求将变量类型从double更改为character)。 如果可能的话,我更喜欢在flextable中执行此操作。 我知道Huxtable可以设置多列格式。 用户是否可以创建定制的set\u formatter\u类型函数

    MWE
    set.seed(100)
    tib%
    设置格式化程序(b=函数(x)格式(圆形(x,-3),big.mark=“,”))%%>%
    设置格式化程序(c=函数(x)格式(圆形(x,-3),big.mark=“,”))%%>%
    set_格式化程序(d=函数(x)格式(圆形(x,-3),big.mark=“,”))%%>%
    set_格式化程序(e=函数(x)轮(x,2))%>%
    set_格式化程序(f=函数(x)轮(x,2))%>%
    打印(preview=“docx”)
    

    是的,可以在此处找到文档:

    在这里:


    对不起,如果没有为每一列单独的代码行,我似乎无法应用链接来格式化多个列。我的问题可能会更好:是否有这样一个函数:
    set_formatter(x,col_to_format(b,c,d)=function(x)format(round(x,-3),big.mark=“,”)
    (我已经编写了col_to_format参数)不,这样的函数不存在(或者它已经被记录在案;)。提供2个功能:一个是列式,另一个是类型式。当然,您可以编写set_格式化程序函数。非常感谢您的澄清。这确实是一个功能要求。@DavidGohel,你能链接或解释更多关于按类型格式化的内容吗?我有一个类似的问题,但我不能特别引用列的名称,因为它们是动态的。@Tjebo这些新函数应该有帮助:)
    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")
    
    set_formatter(b = function(x) format(round(x, -3), big.mark = ","), 
                  c = function(x) format(round(x, -3), big.mark = ","), 
                  d = function(x) format(round(x, -3), big.mark = ","), 
                  e = function(x) round(x, 2), 
                  f = function(x) round(x, 2))