R gt 表格式:如何将长 gt 表变宽?

igu*_*rez 6 r dplyr tibble gt

我想采用 gt() 表并将其转换为“宽”格式,而不是按组级别的“长”格式。因此,以使用 iris 数据集为例:

library(dplyr)  
library(gt)  
iris %>%   
group_by(Species) %>%   
slice_max(Sepal.Length, n=5) %>%  
group_by(Species) %>%  
gt() 
Run Code Online (Sandbox Code Playgroud)

这会产生:

标准GT输出

但是,我想要生成的是以下内容:

所需的 GT 输出

有没有办法做到这一点?

eip*_*i10 5

我们可以通过数据重塑和格式化功能的组合来做到这一点gt。我还重新格式化了列名称以删除句点并将它们放在标题大小写中。

library(tidyverse)  
library(gt)  

iris %>%   
  group_by(Species) %>%   
  slice_max(Sepal.Length, n=5) %>%   
  group_by(Species) %>% 
  mutate(row=row_number()) %>% 
  pivot_longer(-c(Species, row)) %>%
  mutate(Species = str_to_title(Species),
         name = gsub("\\.", " ", name)) %>% 
  pivot_wider(names_from=c(Species, name), values_from=value) %>% 
  select(-row) %>% 
  gt() %>% 
  tab_spanner_delim(
      delim="_"
  ) %>% 
  fmt_missing(
    columns=everything(),
    missing_text=""
  )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述