Как нумеровать / маркировать таблицу данных по номеру группы из group_by?

У меня есть tbl_df, где я хочуgroup_by(u, v) для каждой отдельной комбинации целых чисел, наблюдаемой с(u, v).

РЕДАКТИРОВАТЬ: это было решено путем добавленияgroup_indices() обратно вdplyr 0.4.0

а) Затем я хочу присвоить каждой отдельной группе некоторую метку произвольного отличного номера = 1,2,3 ... например, комбинация (u, v) == (2,3) может получить метку 1, (1,3) может получить 2, и так далее. Как это сделать с однимmutate()без трехступенчатого суммирования и самостоятельного объединения?

Dplyr имеет аккуратную функциюn(), но это дает количество элементовв его группа, а не общийномер группы. Вdata.table это будет просто называться.GRP.

б) На самом деле, что я действительно хочу назначить строку / символьную метку («A», «B», ...). Но нумерация групп по целым числам достаточно хороша, потому что тогда я могу использоватьinteger_to_label(i) как ниже. Разве есть умный способ объединить эти два? Но не переживайте эту часть.

set.seed(1234)

# Helper fn for mapping integer 1..26 to character label
integer_to_label <- function(i) { substr("ABCDEFGHIJKLMNOPQRSTUVWXYZ",i,i) }

df <- tbl_df(data.frame(u=sample.int(3,10,replace=T), v=sample.int(4,10,replace=T)))

# Want to label/number each distinct group of unique (u,v) combinations
df %>% group_by(u,v) %>% mutate(label = n()) # WRONG: n() is number of element within its group, not overall number of group

   u v
1  2 3
2  1 3
3  1 2
4  2 3
5  1 2
6  3 3
7  1 3
8  1 2
9  3 1
10 3 4

KLUDGE 1: could do df %>% group_by(u,v) %>% summarize(label = n()) , then self-join

Ответы на вопрос(5)

Ваш ответ на вопрос