library(gt)
library(dplyr)
gtcars %>%
mutate(mfr = factor(mfr, levels = unique(mfr))) %>% ## keep the original order
arrange(mfr, year) %>%
mutate(year = ifelse(row_number() == 1, as.character(year), ""),
.by = c(mfr, year)) %>%
mutate(mfr = ifelse(row_number() == 1, as.character(mfr), ""),
.by = mfr) %>%
select(mfr, year, everything()) %>%
gt()