如何在 R 中“包装”单个 gt 表的行,从而呈现两个并排表的外观?

问题描述 投票:0回答:1

我想要一个 20 行 x 6 列的 gt 表并调整其方向,使最后十行垂直换行到前十行的右侧。最终产品将是一张最终确定的桌子,其外观为两张并排排列的 10x6 桌子。输出将有一个标题、副标题、源标题等。

请参阅下面我开始使用的 20x6 表格。

iris %>% arrange(desc(Sepal.Length)) %>% slice(1:20,) %>% gt() %>%
  tab_header(title = "Title")

我查看了 gt 包中的 tab_options 以及 gtExtras 包的文档,以熟悉不同的格式化功能。无法找到实现既定目标的方法。对 R 来说仍然相对较新,所以也许我缺少一个简单的解决方案。我当然可以单独生产两张桌子,但寻找最经济的解决方案。谢谢!

r formatting gt
1个回答
0
投票

一种选择是在将数据表传递给

gt()
之前重塑数据表,例如使用
tidyr::pivot_wider
以及一些为行和子“表”创建唯一标识符的中间步骤:

library(gt)

iris %>%
  arrange(desc(Sepal.Length)) %>%
  slice(1:20, ) %>%
  mutate(row = (row_number() - 1) %% 10) |>
  mutate(id = row_number(), .by = row) |> 
  pivot_wider(
    names_from = id, values_from = -c(id, row),
    names_vary = "slowest"
  ) |> 
  select(-row) |> 
  gt() %>%
  tab_header(title = "Title") |> 
  cols_label_with(fn = ~gsub("_\\d+$", "", .x))

© www.soinside.com 2019 - 2024. All rights reserved.