Использование двух обозначений группировки для создания одной «объединенной» переменной группировки
Учитывая 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
Спасибо за любое направление на эту тему!