У меня есть следующий фрейм данных
group x y
a 1 2
a 3 1
b 1 3
c 1 1
c 2 3
Я хочу иметь возможность генерировать все комбинации столбцов x и y внутри группы, например
group xy
a 1-2
a 1-1
a 3-2
a 3-1
b 1-3
c 1-1
c 1-3
c 2-1
c 2-3
I ' я пытался использовать следующий код, но кажется, что функция group_by
работает не так, как ожидалось
library(dplyr)
library(tidyr)
combn <- df %>%
group_by(group) %>%
expand(x, y)
Мои текущие результаты вместо этого дают мне все комбинации всех трех столбцов
head(combn)
group x y
a 1 1
a 1 2
a 1 3
a 2 1
a 2 2
a 2 3
Вывод:
structure(list(group = structure(c(1L, 1L, 2L, 3L, 3L), .Label = c("a",
"b", "c"), class = "factor"), x = structure(c(1L, 3L, 1L, 1L,
2L), .Label = c("1", "2", "3"), class = "factor"), y = structure(c(2L,
1L, 3L, 1L, 3L), .Label = c("1", "2", "3"), class = "factor")), class = "data.frame", row.names = c(NA,
-5L))