簡體   English   中英

如何在 R 中動態選擇 flextable 包中的列

[英]How to dynamically choose columns in flextable package in R

我使用 R 中的flextable包創建了下表。

library(tidyverse)
library(flextable)

data <- structure(list(Category = structure(1:2, levels = c("Baseline", 
"Alternate"), class = "factor"), `2022 Q2` = c("6%", "6.4%"), 
    `2022 Q3` = c("6.5%", "6.7%"), `2022 Q4` = c("6.4%", "6.6%"
    ), `2023 Q1` = c("5.7%", "5.5%"), `2023 Q2` = c("4.5%", "4.8%"
    ), `2023 Q3` = c("4.2%", "4.7%"), `2023 Q4` = c("4%", "4.6%"
    )), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"
))

data %>% 
  flextable() %>% 
  align(j = 2:8, align = "center")

我不想手動選擇要對齊的列(在本例中為j = 2:8 ),而是動態選擇從第二列到最后一列的所有列。 我試過align(j = 2:n(), align = "center")類似於我在dplyr中的做法,但是這在flextable表示法中是不可能的。 有什么建議么?

使用ncol()你可以這樣做:

library(dplyr)
library(flextable)


data %>% 
  flextable() %>% 
  align(j = 2:ncol(data), align = "center")

編輯感謝@DavidGohel 的評論,第二個更可取的解決方案是使用flextable::ncol_keys 最后一個選項的好處是它也適用於僅在彈性表中顯示某些數據列的情況。

data %>% 
  flextable() %>% 
  align(j = 2:ncol_keys(.), align = "center")

在此處輸入圖像描述

暫無
暫無

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

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