如何删除/更改flextable中的十进制总和值

问题描述

我设法根据以下代码创建了一个 flextable。 opleiding1 到 4 中使用的数据看起来有点像这样:0,1,7,3,0

t7 <- data.frame(df$opleiding.1.[df$startvraag=="Ja"],df$opleiding.2.[df$startvraag=="Ja"],df$opleiding.3.[df$startvraag=="Ja"],df$opleiding.4.[df$startvraag=="Ja"]
)

t7 <- data.frame(aantal=(apply(t7,2,sum))) %>% round(digits = 0)
rownames(t7) <- c("hbo,universitair","mbo,vwo,havo","vmbo/mavo","onbekend")
t7

使用以下代码创建一个flextable:

t7 <- xtable(t7)

ft7 <- t7 %>% xtable_to_flextable() %>% 
  fontsize(part = "header",size = 20) %>%
  fontsize(part = "body",size = 18) %>%
  align_text_col(align = "left") %>% 
  align_nottext_col(align = "center") %>%
  width(width = 2.3) %>%
  width(j = 1,width = 2.0) %>%
  height_all(height = .5) %>%
  border_inner(border = std_border) %>% 
  font(fontname = "Open Sans") %>%
  color(part = "header",color = d) %>% 
ft7

这给了我一个 flextable,除了显示的小数点 here 外,它和我想要的一样。我一直在寻找可能的解决方案,但似乎没有任何效果。将表转换为 flextable 时,似乎添加了小数点。当我运行前面的代码(在上面提到)时,它不会返回任何小数,如图here。希望有人能帮我解决这个问题。

解决方法

我认为这是因为您的 aantal 列的类型是 double,这意味着它包含 real 值。您可以在创建 data.frame 时将其类型更改为 integer

试试这个

t7 <- data.frame(aantal=(apply(t7,2,sum))) %>% 
    round(digits = 0) %>%
    mutate(aantal = as.integer(aantal))