¿Cómo numerar / etiquetar la tabla de datos por número de grupo de group_by?

Tengo un tbl_df donde quierogroup_by(u, v) para cada combinación entera distinta observada con(u, v).

EDITAR: esto se resolvió agregandogroup_indices() de nuevo endplyr 0.4.0

a) Entonces quiero asignar a cada grupo distinto una etiqueta de número distinto arbitrario = 1,2,3 ... por ejemplo la combinación (u, v) == (2,3) podría obtener la etiqueta 1, (1,3) podría obtener 2, y así sucesivamente. Cómo hacer esto con unomutate(), sin un resumen de tres pasos y auto-unirse?

dplyr tiene una función ordenadan(), pero eso da el número de elementosdentro su grupo, no el generalnumero del grupo. Endata.table esto simplemente se llamaría.GRP.

b) En realidad, lo que realmente quiero asignar es una etiqueta de cadena / carácter ('A', 'B', ...). Pero numerar grupos por enteros es lo suficientemente bueno, porque entonces puedo usarinteger_to_label(i) como a continuación. ¿A menos que haya una manera inteligente de fusionar estos dos? Pero no te preocupes por esta parte.

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

Respuestas a la pregunta(5)

Su respuesta a la pregunta