FlexTable中的格式编号

时间:2016-01-29 17:20:19

标签: r flextable reporters

我正在使用ReporteRs使用以下代码生成flexTable:

library( ReporteRs )
baseCellProp <- cellProperties( padding = 2 )
baseParProp <- parProperties(text.align = "center")
ft.list <- list(mua= 1, mub = 2, mug = 1e-7)
ft.data <- t(data.frame(ft.list))

ft.FlexTable <-  FlexTable( data = ft.data,
                            add.rownames = TRUE,
                            header.columns = FALSE,
                            body.cell.props = baseCellProp,
                            body.par.props = baseParProp)

ft.FlexTable <- setFlexTableWidths(ft.FlexTable, widths =c(1,2))
ft.FlexTable

我遇到的问题是所有的数字都以这样的科学记数法出现:

mua 1e+00
mub 2e+00
mug 1e-07

有没有办法告诉flexTable如何格式化数字?具体来说,不要对所有行应用相同的格式,而是应用逐行有意义的格式?

2 个答案:

答案 0 :(得分:1)

我在R Markdown文档中使用flextable解决了此问题,方法是添加set_formatter_type并控制所有double数据类型的显示方式。我的输出用大量的零填充所有我不想要的东西。

```{r echo=FALSE, message=FALSE, warning=FALSE, results='asis'}
library(flextable)
library(tidyverse)
results <- as.tibble(read.csv("D:/ALLRESULTS.csv",header=TRUE))
results %>% na.omit() %>% filter(grepl("KEY-K",Alignment)) %>% 
      arrange(Year,Source) %>% 
      select(Source,Question,Year,Target,Actual,Highest,n) %>% 
      regulartable() %>% 
      set_formatter_type(fmt_double="%.01f") %>% 
      align(part="header",align="center") %>% 
      align(align="left") %>% autofit()
```

答案 1 :(得分:0)

我使用r transposing a data frame中的提示解决了我的问题。问题是转置数据框架框架将所有元素强制转换为字符。使用矩阵解决了这个问题:

ft.list <- list(mua= 1, mub = 2, mug = 1e-7)
ft.data <- as.matrix(ft.list, rownames.force=TRUE )