在 FlexTable 中格式化数字
Format Numbers in FlexTable
我正在使用 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 如何格式化数字?特别是不要对所有行应用相同的格式,而是逐行应用有意义的格式?
我使用 r transposing a data frame 的提示解决了我的问题。问题是转置数据框 frame 将所有元素强制转换为字符。使用矩阵解决了这个问题:
ft.list <- list(mua= 1, mub = 2, mug = 1e-7)
ft.data <- as.matrix(ft.list, rownames.force=TRUE )
我在 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()
```
我正在使用 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 如何格式化数字?特别是不要对所有行应用相同的格式,而是逐行应用有意义的格式?
我使用 r transposing a data frame 的提示解决了我的问题。问题是转置数据框 frame 将所有元素强制转换为字符。使用矩阵解决了这个问题:
ft.list <- list(mua= 1, mub = 2, mug = 1e-7)
ft.data <- as.matrix(ft.list, rownames.force=TRUE )
我在 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()
```