Использование двух обозначений группировки для создания одной «объединенной» переменной группировки

Учитывая data.frame:

df <- data.frame(grp1 = c(1,1,1,2,2,2,3,3,3,4,4,4),
                 grp2 = c(1,2,3,3,4,5,6,7,8,6,9,10))

#> df
#   grp1 grp2
#1     1    1
#2     1    2
#3     1    3
#4     2    3
#5     2    4
#6     2    5
#7     3    6
#8     3    7
#9     3    8
#10    4    6
#11    4    9
#12    4   10

Оба столбца являются группирующими переменными, так что все 1 в столбцеgrp1 как известно, сгруппированы вместе, и так далее со всеми 2 и т. д. То же самое относится и кgrp2, Известно, что все 1 одинаковы, все 2 одинаковы.

Таким образом, если мы посмотрим на 3-ю и 4-ю строку, основываясь на столбце 1, мы знаем, что первые 3 строки могут быть сгруппированы вместе, а вторые 3 строки могут быть сгруппированы вместе. Тогда, так как строки 3 и 4 делят то же самоеgrp2 Значение, мы знаем, что все 6 строк, по сути, могут быть сгруппированы вместе.

Исходя из той же логики, мы можем видеть, что последние шесть строк также могут быть сгруппированы (поскольку строки 7 и 10 имеют одинаковыеgrp2).

Помимо написания довольно сложного набораfor() петли, есть более прямой подход к этому? Я еще не смог придумать ни одного.

Окончательный результат, который я надеюсь получить, будет выглядеть примерно так:

# > df
#    grp1 grp2 combinedGrp
# 1     1    1           1
# 2     1    2           1
# 3     1    3           1
# 4     2    3           1
# 5     2    4           1
# 6     2    5           1
# 7     3    6           2
# 8     3    7           2
# 9     3    8           2
# 10    4    6           2
# 11    4    9           2
# 12    4   10           2

Спасибо за любое направление на эту тему!

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

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