簡體   English   中英

R 中缺少彈性表的外邊框

[英]Missing outer border of a flextable in R

我有一個無法解決的問題。 flextable package 中可能缺少某些內容,但我可能錯了。 請看例子。 這是我的表格數據:

structure(list(groupName = c("Group A", "Group A", "Group A", 
"Group A", "Group A", "Group B", "Group B", "Group B", "Group B", 
"Group B"), ID = c("14243", "14363", "14373", "14934", "14980", 
"14400", "14488", "14513", "14549", "15407"), `Day -15` = c(NA, 
NA, NA, 174, 143, NA, NA, NA, NA, 169), `Day -13` = c(NA, NA, 
NA, 164, 132, NA, NA, NA, NA, 178), `Day -12` = c(NA_real_, NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
NA_real_), `Day -11` = c(NA, NA, NA, NA, 189, NA, 213, NA, NA, 
204), `Day -10` = c(NA, NA, NA, 187, NA, NA, NA, NA, NA, NA), 
    `Day -9` = c(NA, NA, NA, NA, 178, NA, 204, 227, 257, 232), 
    `Day -8` = c(NA, NA, NA, 286, NA, NA, NA, NA, NA, NA), `Day -7` = c(NA, 
    NA, NA, NA, NA, NA, 258, 311, 291, NA)), row.names = c(NA, 
-10L), class = c("tbl_df", "tbl", "data.frame"))

我建立一個這樣的彈性表:

flx <- flextable(tbl2) %>% 
  border_outer() %>% 
  add_header_row(values = c(
    "groupName",
    "ID",
    rep("measurement", ncol(tbl2) - 2)
  )) %>% 
  merge_h(part = "header") %>% 
  merge_v(part = "header") %>% 
  valign(valign = "bottom", part = "header") %>% 
  align(align = "center", part = "all")

output 是在此處輸入圖像描述 如您所見,header 的第一行缺少邊框。 我嘗試再次添加border_outer() ,但沒有效果。 我也試過vline_right function,但也沒有效果。 我發現的唯一一件事是添加這一步:

flx %>% border_inner_v(part = "header")

但它為 header 中的每個單元格添加了邊框,這不是我需要的。 在此處輸入圖像描述

我認為我的管道中的步驟merge_h是發生壞事的地方。 有解決方案嗎?

這是一種特殊情況,您在右側看到的邊框實際上是已與所有后續單元格合並的第三個單元格的右邊框。

library(flextable)
library(magrittr)

tbl2 <- structure(list(groupName = c("Group A", "Group A", "Group A", 
"Group A", "Group A", "Group B", "Group B", "Group B", "Group B", 
"Group B"), ID = c("14243", "14363", "14373", "14934", "14980", 
"14400", "14488", "14513", "14549", "15407"), `Day -15` = c(NA, 
NA, NA, 174, 143, NA, NA, NA, NA, 169), `Day -13` = c(NA, NA, 
NA, 164, 132, NA, NA, NA, NA, 178), `Day -12` = c(NA_real_, NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
NA_real_), `Day -11` = c(NA, NA, NA, NA, 189, NA, 213, NA, NA, 
204), `Day -10` = c(NA, NA, NA, 187, NA, NA, NA, NA, NA, NA), 
`Day -9` = c(NA, NA, NA, NA, 178, NA, 204, 227, 257, 232), 
`Day -8` = c(NA, NA, NA, 286, NA, NA, NA, NA, NA, NA), `Day -7` = c(NA, 
NA, NA, NA, NA, NA, 258, 311, 291, NA)), row.names = c(NA, -10L), 
class = c("tbl_df", "tbl", "data.frame"))

# solution 1
flextable(tbl2) %>% 
  border_outer() %>% 
  add_header_row(values = c(
    "groupName",
    "ID",
    rep("measurement", ncol(tbl2) - 2)
  )) %>% 
  merge_h(part = "header") %>% 
  merge_v(part = "header") %>% 
  valign(valign = "bottom", part = "header") %>% 
  align(align = "center", part = "all") %>% 
  vline(i = 1, j = 3, border = fp_border_default(), part = "header")

# solution 2
flextable(tbl2) %>% 
  border_outer() %>% 
  add_header_row(values = c(
    "groupName",
    "ID",
    rep("measurement", ncol(tbl2) - 2)
  )) %>% 
  merge_h(part = "header") %>% 
  merge_v(part = "header") %>% 
  valign(valign = "bottom", part = "header") %>% 
  align(align = "center", part = "all") %>% 
  fix_border_issues()

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM