我想要一个 20 行 x 6 列的 gt 表并调整其方向,使最后十行垂直换行到前十行的右侧。最终产品将是一张最终确定的桌子,其外观为两张并排排列的 10x6 桌子。输出将有一个标题、副标题、源标题等。
请参阅下面我开始使用的 20x6 表格。
iris %>% arrange(desc(Sepal.Length)) %>% slice(1:20,) %>% gt() %>%
tab_header(title = "Title")
我查看了 gt 包中的 tab_options 以及 gtExtras 包的文档,以熟悉不同的格式化功能。无法找到实现既定目标的方法。对 R 来说仍然相对较新,所以也许我缺少一个简单的解决方案。我当然可以单独生产两张桌子,但寻找最经济的解决方案。谢谢!
一种选择是在将数据表传递给
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))