Вот одна из возможностей:
df <- tibble(y=c('a','a','a', 'b','b','b','b','b','a','b'), z=c(1,1,1,1,1,1,2,2,3,3))
df2 <-
df %>%
group_by(z,y) %>%
summarise(n = n()) %>%
group_by(z) %>%
mutate(z2 = if_else(row_number() == 1, as.character(z), " "), y, n) %>%
ungroup() %>%
transmute(z = z2, y, n)
df2 %>%
knitr::kable()
У меня проблемы с поиском способов сделать это, которые не включают группировку по столбцу z
и поиск первой строки. К сожалению, это означает, что вам нужно добавить пару шагов, потому что переменная группировки не может быть изменена в вызове mutate
.